0

localhost xammp に travian スクリプトをインストールしていたところ、多くのエラーが発生しました。

そのうちの 4 つは、mysql 情報を保持していると思われる通知です。「未定義定数SQL_USEの使用」

これら 4 つのエラーは、グローバル レジスタがオフになっているために発生したのですか? またはこれとは何の関係もありませんか?

さて、GameEngine 内に config.php というファイルがあります。このファイル、実行中の現在のファイル、config.php への呼び出し、および config.php には以下が含まれます。

// ***** Database Username
define("SQL_USER", "root");

// ***** Database Password
define("SQL_PASS", "sergfree");

// ***** Database Name
define("SQL_DB", "trav");

// ***** Database - Table Prefix
define("TB_PREFIX", "s1_");

これがインクルードです

include ("../../GameEngine/config.php");

これは現在のファイルの場所 C:\xampp\htdocs\install\include\multihunter.php ですが、なぜこれが機能しないのでしょうか?

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\Config.php on line 80

Deprecated: Assigning the return value of new by reference is deprecated in C:\xampp\php\PEAR\Config.php on line 166

Notice: Use of undefined constant DB_TYPE - assumed 'DB_TYPE' in C:\xampp\htdocs\GameEngine\Database.php on line 13

Notice: Use of undefined constant SQL_SERVER - assumed 'SQL_SERVER' in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17

Notice: Use of undefined constant SQL_USER - assumed 'SQL_USER' in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17

Notice: Use of undefined constant SQL_PASS - assumed 'SQL_PASS' in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17

Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17

Warning: mysql_connect() [function.mysql-connect]: [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. (trying to connect via tcp://SQL_SERVER:3306) in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17

Warning: mysql_connect() [function.mysql-connect]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\htdocs\GameEngine\Database\db_MYSQL.php on line 17
php_network_getaddresses: getaddrinfo failed: No such host is known.
4

3 に答える 3

2

おそらく、SQL_ の定義が行われる構成ファイルを含めるのを忘れていました。

編集に基づいて、これらの定義行のコメントを外します。

// * Database Username 
define("SQL_USER", "root");
于 2012-06-15T19:51:49.390 に答える
1

私の推測では、必要な構成がいくつか欠けていると思います。Register globals は、実際のリクエスト (GET および POST パラメーター、Cookie、環境) からの変数のみに関係します。あなたの場合に欠落している定数は、実際のデータベースの資格情報のようであり、それらが存在しないと接続が失敗するようです。おそらく、コードの設定方法を説明するドキュメントがいくつかあるはずです。それを読む必要があります。

于 2012-06-15T19:53:02.517 に答える
1

通知は、あなたまたはスクリプト作成者が配列キーの引用符を省略したことが原因である可能性があります。たとえば、次のようになります。

$foo = $config[SQL_SERVER];

...あるべき場所:

$foo = $config['SQL_SERVER'];

前者では、PHP は (正しく)SQL_SERVER配列のキーに使用する値を持つ名前の定数を探し、見つからない場合はおそらく string を使用するつもりであると判断します'SQL_SERVER'。これは PHP の最悪の「機能」の 1 つであり、これらのエラーが表示されているということは、コードの作成者がおそらく初心者であることを示唆しています。

作成者が次のような行を含む構成ファイルを配布した可能性もあります。

$foo = SQL_SERVER;

...これを見て、例えばに置き換えると仮定して

$foo = "10.0.0.2";

(この構成へのアプローチは、ユーザーが構成行を見逃した場合に有用な情報を提供する代わりに、実行時エラーを引き起こす (またはいずれにせよ、実行時エラーを引き起こす可能性がある) ため、悪い習慣でもあります。)

パッケージREADMEまたはそれに相当するものは、構成値をどこに設定する必要があるかを示す必要があります。多くの場合、これはconfig.phpまたはconfig.inc.phpのような名前のファイルであり、場合によってconfig.sample.phpは、変更してから に名前を変更することを意図しているファイルですconfig.php

于 2012-06-15T19:57:27.203 に答える