2014-10-17 77 views
1

我有一個非常奇怪的行爲與PHP的會話變量。

問題是會話值正在自動重寫,沒有明顯的原因。

代碼片段龍虎鬥是這樣的:

<?php 

session_start(); 
$_SESSION["id"] = 5; 
echo $_SESSION["id"]; // Echoes 5 
$id = $_REQUEST["id"]; // Being for example $_REQUEST["id"] = 3 
echo $_SESSION["id"]; // Echoes 3 

?> 

它可能是一些錯誤配置?

P.S:運行PHP版本5.3.3是

回答

2

你可能有register_globals設置爲在您的php.ini配置。這意味着您只能使用變量$id參考$_SESSION['id'],導致您在上面的示例中看到的問題。將register_globals設置爲在php.ini中關閉並重試。

+0

謝謝,真的很簡單的解決方案!問題2是客戶_需要_在共享主機上使用該程序,而不可能更改任何php變量。所以我選擇這個作爲接受的答案,但不幸的是不能解決我的問題 – jila 2014-10-17 10:08:32

+0

嘗試將以下內容添加到.htaccess文件:php_flag register_globals 0 – danmullen 2014-10-17 10:12:46

+0

不能...幾乎免費共享主機的缺點之一...如果客戶想要一個更新,我將修復在php.ini中使用ini_set()或.htaccess文件禁用'register_globals'。不管怎麼說,還是要謝謝你 – jila 2014-10-17 11:01:06