2010-06-30 112 views
1

我有一個頁面重定向到一個名爲customproofs.php的頁面。什麼是出現的register_globals警告消息?

當它重定向到該頁面時,會出現以下警告消息:

警告:未知:您的腳本可能 依靠其 存在,直到PHP 4.2.3會話副作用。請建議 建議會話擴展 不考慮全局變量作爲 數據源,除非 register_globals已啓用。通過設置 session.bug_compat_42或 session.bug_compat_warn時爲關閉,分別未知 在線0

這是否意味着我需要改變在PHP的東西,你可以 禁用此功能,這 警告。 ini文件?我將如何更改Web服務器上特定文件夾的php.ini文件?

是否正在更改設置,以便消息消失?我爲什麼收到這條消息?

該代碼正常工作,因爲它現在。我能否告訴警告不要出現?

+0

你不應該改變php.ini,因爲它是一個安全功能。 請認真閱讀負責此警告的代碼 – jigfox 2010-06-30 10:45:07

+0

您使用的是哪個版本的PHP? – fabrik 2010-06-30 10:45:52

+0

@Jens - 我不知道哪部分代碼是負責任的,因爲錯誤消息說要在第0行看,我不知道錯誤是指什麼。 – zeckdude 2010-06-30 10:51:02

回答

4

您可以避免使用會話變量和常規變量的相同名稱。

例如如果你有

$foo = 'Hello'; 
$_SESSION['foo'] = 'Bar'; 

試試這個改變爲:

$foo = 'Hello'; 
$_SESSION['session_foo'] = 'Bar'; 
+0

使用名爲$ address的變量和名爲$ _SESSION ['address']的另一個變量有什麼問題? – zeckdude 2010-06-30 10:56:55

+0

@zeckdude這是一個漫長的故事。你最好這樣做。或者至少使用非空值初始化$ _SESSION ['address']。 – 2010-06-30 10:59:36

1

這是非常奇怪的錯誤消息。
爲了避免這個和其他許多陷阱,只是從來沒有對會話變量和全局變量使用相同的名稱。即在相同的腳本變量$_SESSION['cart']$cart是錯誤的,而$_SESSION['sess_cart']$cart是好的。
另外,我希望你不要使用古老的會話語法,session_register()一個