php關於session的問題

itsos發表於2007-01-31
session_register[name]的方式註冊session值出現以下錯誤:

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

大致的意思為:

這是php4.3.0以後才有的安全設定。
出於安全的考慮php不建議你開啟register_globals開關
但若關閉了register_globals(預設)時,session變數將不被自動轉換成全域性變數
此時傳統的session變數註冊方式session_register就失去意義了(session_register是把一個全域性變數註冊成session變數),因為訪問session變數需要使用$_SESSION陣列。
因此只需直接操作$_SESSION陣列就可以了,而無須再用session_register註冊了。以免產生混亂
開關session.bug_compat_42 和 session.bug_compat_warn 就是為了檢查此類情況而設定的

那麼在register_globals關閉的情況下,以如下方法註冊session變數。

session_start();
$_SESSION[name] = "var";
?>[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/652486/viewspace-896277/,如需轉載,請註明出處,否則將追究法律責任。

相關文章