PHP使用session_set_save_handler陷阱
生活随笔
收集整理的這篇文章主要介紹了
PHP使用session_set_save_handler陷阱
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
陷阱如下
當腳本使用了session_set_save_handler 來重定向 session后,使用session_destroy后再使用session_start()重新開啟session會報錯
代碼如下,
<?php function open() {echo 'session start';echo "\n"; }function close() {echo 'session close';echo "\n"; }function read($sessionId) {echo 'read'.$sessionId;echo "\n"; }function write($sessionId, $data) {echo 'write'.$sessionId.$data;echo "\n"; }function destroy($sessionId) {echo 'destroy '.$sessionId;echo "\n"; } function gc($lifetime) {echo 'gcccc';echo "\n"; } session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc'); session_start(); echo session_id(); echo "\n"; session_destroy();session_start(); $id = 'h06vgdfdfve6b8f66sva6basf8'; session_id($id); echo session_id();運行后報錯
1 Fatal error: session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: user (path: /var/lib/php/session) in /home/user/site/session.php on line 39屏蔽session_set_save_handler('open', 'close', 'read', 'write', 'destroy', 'gc');
正常流程下(使用原生session)錯誤不會再出現。
?
so..
如果網站要使用自定義session建議自己封裝和直接使用相關函數, 繞開session_set_save_handler
轉載于:https://www.cnblogs.com/sailrancho/p/3384051.html
總結
以上是生活随笔為你收集整理的PHP使用session_set_save_handler陷阱的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 医院院长修电脑
- 下一篇: android在Service中弹出Di