2012-06-15 13 views
0

我在localhost xammp上安裝了travian腳本,並且出現了很多錯誤。註冊全局變量影響未定義的常量錯誤嗎?

其中四個是應該保存mysql信息的通知。 「使用未定義的常量SQL_USE」

是否因爲全局寄存器關閉而發生這四種錯誤?還是與此無關?

好的,所以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中\安裝\包括\ 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

寄存器全局指令無關與此有關。 – nickb

+0

如何找到丟失的配置文件?這是2400行的長文件,那個區域周圍的代碼可能是什麼?以便更容易地找到該文件。 –

+0

通過grepping爲「定義」和「SQL_SERVER」 –

回答

2

也許你忘了,包括在SQL_定義都做了配置文件。

根據您的修改,取消那些定義線:

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

格拉茨的9K,和好了,這是一個腳本包,你應該安裝它。猜猜他們忘了添加它,謝謝。 –

+0

仍然有一個問題 –

1

我的猜測是你缺少了一些必要的配置。註冊全局變量只涉及來自實際請求的變量(GET & POST參數,cookie,環境)。在你的情況下缺少的常量似乎是實際的數據庫憑據,顯然他們的缺席會導致連接不成功。可能應該有一些文檔描述如何設置代碼,你應該閱讀。

+0

有一個讀我的文件,上面寫着不修改任何意見笑 –

1

的聲明可能是由您或數組鍵的腳本作者省略引號引起,例如:

$foo = $config[SQL_SERVER]; 

...它應該是:

$foo = $config['SQL_SERVER']; 

同前, PHP看起來(正確地)尋找一個名爲SQL_SERVER的常量,它的值用於數組鍵,當它找不到一個決定你可能打算使用字符串'SQL_SERVER'。這是PHP最糟糕的「功能」之一,你看到這些錯誤表明代碼的作者可能是一個新手。

這也有可能是作者已經分發的配置文件中包含行:

$foo = SQL_SERVER; 

...的假設,你會看到這一點,例如與更換

$foo = "10.0.0.2"; 

(這種配置方法也有不好的做法,因爲它會導致或應該引起,無論如何,運行時錯誤,而不是提供有用的信息,在用戶已經錯過了一些配置行的事件。)

包的README或同等應該告訴你在哪裏配置值應設置通常這是一個名字類似config.phpconfig.inc.php,或有時例如文件config.sample.php您正在打算修改,然後重命名爲config.php