2014-03-25 82 views
0

我遇到了magic_quotes_gpc問題。我正在將一臺網絡服務器從一臺XP機器遷移到一臺Win2003上。 PHP代碼在某些情況下是舊的,而且沒有很好開發,所以我真的需要有magic_quotes_gpc工作。PHP 5.3 magic_quotes_gpc打開但不工作

我敢肯定,構型正常進行,我也tryed複製舊的PHP文件夾和php.ini中,但仍然有問題。擁有magic_quotes_gpc = On具有確切的行爲magic_quotes_gpc = Off

Tryied與PHP 5.3,但即使與老5.1妥善舊服務器上的工作。

唯一的區別是,在新的服務器我使用的FastCGI。

我真的在你的手中,以解決這個問題,我真的越來越瘋狂!

20140326 - 添加代碼示例按阿爾瓦羅建議

<? 
    print $_GET["id"]; 
    print '<br><br>'; 
    print $_GET[id]; 
?> 

呼叫./sample.php?id=1頁,僅顯示此行(我的錯誤上):

PHP Notice: Use of undefined constant id - assumed 'id' in C:\Inetpub\wwwroot\simple.php on line 4

在談到第4行:

<? 
    print $_GET["id"]; 
    print '<br><br>'; 
    //print $_GET[id]; 
?> 

輸出正如預期的那樣ut是1。

+0

除了間接檢查,你可以運行'phpinfo()'並看看嗎? –

+0

phpinfo()顯示'magic_quotes_gpc On On' – user3460745

+0

然後它是在...你有沒有嘗試過一個簡單的測試腳本?你可以與我們分享(代碼和輸出)嗎? –

回答

1

測試代碼是完全無關的magic quotes因此,我懷疑你誤解了功能做什麼。與魔術的報價,你會調用這個URL:

/test.php?foo=O'Hara 

...其中test.php是:

<?php 
var_dump($_GET); 

...並把它恢復:

array(1) { 
    ["foo"]=> 
    string(7) "O\'Hara" 
} 

...代替這個:

array(1) { 
    ["foo"]=> 
    string(6) "O'Hara" 
} 

Howev呃,你正在嘗試使用一個不存在的常數,如下:

<?php 
define('this_exists', 'yes'); 
echo this_exists; 
echo this_does_not_exist; 

...你可能想要的是PHP不警告你的錯誤:

PHP Notice: Use of undefined constant this_does_not_exist - assumed 'this_does_not_exist'

所以你基本上想要撥打error_reporting並省略E_NOTICE

+0

更多以添加,其實'打印$ _GET [ID]'是由PHP程序員在代碼中完成的,因爲它只是扔通知,然後默默地不斷識別碼轉換爲字符串常見的錯誤「身份證',所以PHP終於執行它作爲print $ _GET ['id']。他必須使用$ _GET ['id']或$ _GET [「id」]。 –

+0

奇怪的是,舊服務器中的相同代碼不會生成任何錯誤,並且輸出「正確」。我不明白爲什麼在2臺服務器上我有不同的行爲。 – user3460745

+0

因爲錯誤報告是**可配置**。這就是爲什麼設置首先存在。 –

相關問題