2009-10-27 53 views
2

,當我的數據存儲在像變量:PHP Session變量的改變它

// inside the login page 
$_SESSION['username'] = $username; 
$_SESSION['user_id'] = $user_id; 

,我引用SESSION另一頁上,如:

// on the users homepage 
$new_variable = $_SESSION['username']; 

改變了它的價值,以不同的東西來自數據庫。

,或者例如,如果我提出一個新的變量名爲$ user_ID的

// creating a new variable in the users inbox 
$user_id = 12312; 

它改變了SESSION值這一點。


有沒有人知道我要去哪裏錯了?

謝謝!

回答

5

聽起來啓用register_globals的。這意味着$ _SESSION和全局變量將有效地運作。如果您控制主機,您應該將register_globals設置爲關,如果不是,請詢問主機。最後,你應該移動主機,因爲它非常不安全,難以安全編程。

你可以用其他全局數組來演示這個問題,包括$ _GET。

更多細節

+0

謝謝。我必須給我的主人發郵件。在與他們atm的合同中,需要儘快改變。 – Stephen

+0

祝你好運 - 除此之外,還有許多便宜的主機。請在註冊之前查看phpinfo! –

+0

另外,如果您有權訪問使用htaccess文件,「php_flag register_globals off」可能適用於您。 – Littlejon

3

關閉了register_globals在php.ini

+1

http://php.net/manual/en/security.globals.php這是沒有意義的(英文至少)是不是一個真正的答案。堆棧溢出不只是關於代表! –

+0

修正了,不好意思,我是巴西人,我寫的是想着葡萄牙語! – Cesar