在 Xoops 中使用自訂 Session 時,會發現不論 $_Session 怎麼更改,到下一個畫面就消失,原因是 Xoops 不允許直接對 Session 操作,如果要自訂 Session 則要做以下設定
1.使用自定的session:是
2.Session 有效期:60
再來可以將自訂的 Session 寫入 $_SESSION['XOOPS_TOKEN_SESSION'] 陣列中,例如
這個作法是追縱Xoops 核心得出來的結果,也許可以透過 Xoops 本身的物件去操作,但是目前仍未找到,如果有更好的作法,歡迎指正
什麼是自訂session,在哪裡設定
迴響 by sheshi37c — 八月 30, 2006 @ 1:30 下午
關於 Session 的說明,請參考 PHP Session 管理或是 使用 SESSION 來記錄 Web 應用程式的狀態
在開發網頁程式時,經常需要得知目前使用者的資訊,而http 是一種無連線狀態(Stateless Connection)的協定。
意思就是說,Server 端的變數在頁面顯示完成後,會全部消失,所以我們需要有一種不會消失的全域變數來記錄必要的資訊,
以前我們常常使用 Cookie 來記錄這些資訊,但是Cookie是儲存在 Client 端,會有支援性及安全性的問題,所以目前很多網站捨棄 Cookie 而使用 Session
明白了 Session 的用意後,自然可以知道,為什麼要使用自訂 Session 的功能,而在 Xoops 裡啟用自訂 Session 功能的方式,在上文也有說明
[coolcode linenum="off"]
偏好設定/系統/一般設定
1.使用自定的session:是
2.Session 有效期:60
[/coolcode]
迴響 by shinnlu — 八月 30, 2006 @ 2:00 下午
非常感謝你的回復
我已經做了"偏好設定/系統/一般設定",但是自己問題依然沒有解決.
我現在在做一個網站,裡面架設XOOPS,在網站做一個登陸口,提交信息到xoops"user.php"頁面處理用戶登陸,然後跳轉返回到網站頁面,我起用$_SESSION['uname'],進行判斷,但輸出的值卻是空值,只是什麼原因
問一下,方便留下你的MSN嗎,嘿嘿~
迴響 by sheshi37c — 八月 30, 2006 @ 2:13 下午
我想設定的部份沒什麼問題,有問題的只是自訂 Session 的程式碼
自訂 Session 的程式碼不能直接寫入 $_SESSION['uname'],你可以試試
[coolcode linenum="off"]
$_SESSION['XOOPS_TOKEN_SESSION']['uname'] = $uname;
[/coolcode]
我的MSN和 google Talk 都是 shinnlu@gmail.com ,但是比較常開 google talk
迴響 by shinnlu — 八月 30, 2006 @ 3:22 下午
即使是$_SESSION['XOOPS_TOKEN_SESSION']['uname'] = $uname;
在網站登陸頁面,打印$_SESSION 是空值
迴響 by sheshi37c — 八月 30, 2006 @ 4:24 下午