プロが教えるわが家の防犯対策術!

PHP + MySQL でデータベース検索結果を表示するシステムを作っています。
利用者側サーバには呼び出しスクリプトを置いて、
こちら側サーバには処理スクリプトを置くことにより
処理ノウハウの提供を防ぎたいのですがうまくいきません。

利用者側サーバでのスクリプト単体では問題なく動いているのですが、
こちら側のサーバで一部の処理を動かそうとすると
(つまり利用者側から require 'http://hogehoge.jp/list.php'; しようとすると)
下記のようにエラーとなってしまうのです。
(ちなみにこちら側サーバ単体でも正常に動作します。)

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /パス/list.php on line 9
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /パス/list.php on line 10

どちらのサーバも同じレンタルサーバ会社から借りており、PHP も MySQL も利用可能です。
他の部分ではエラーは出ないのですが、mysql_query() や mysql_fetch_row() などは
外部サーバでは使えないのでしょうか?

//全登録件数を表示する処理
$sql_countall = "select number from ".$db_table;
$result = mysql_query($sql_countall, $dbHandle );
while($temp = mysql_fetch_row($result)){
$datacount = $datacount +1;
}

A 回答 (1件)

requireと言うよりmysql_query()の部分でエラーがでていますね…



require部分の問題なら
まず、phpinfo()を読んでみて
「allow_url_fopen」が有効になっているかを見てください。
参考)http://jp.php.net/manual/ja/ref.filesystem.php#i …

また、サーバのOSがwindowsで
PHPのバージョンが4.3.0以前ですと
リモートファイルへのrequireは出来ないそうです。


所でデータベースはどちら側のサーバにあるのでしょうか?
管理側のサーバにデータベースが入っている状態で
利用者側からスクリプトをrequireしても
接続先が違ってきますよね…

この回答への補足

ご回答ありがとうございます。
調べてみましたが allow_url_fopen は 1(Local Value とMaster Value)となっていました。
サーバは FreeBSD で PHP は Version 4.2.3 です。
なお、データベースは利用者側にあります。
・利用者側サーバ(表示スクリプト、データベース)
・管理者側サーバ(検索スクリプト)

問題なく動いているスクリプトの他の部分も require してみましたが、
mysql_num_rows()、mysql_num_fields()、mysql_free_result():
あたりでエラーが出てしまいます。

補足日時:2004/03/26 18:35
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!