天天看點

php在用戶端禁用cookie時讓session不失效的解決方法

本文轉自it擺渡網歡迎轉載,請标明出處

php在用戶端禁用cookie時讓session不失效的解決方法

更多php文章請閱讀

<a href="http://www.itbaiduwang.com/c-3/8.html">php問題解決</a>

  cookie固然好,不過有些用戶端浏覽器會禁用cookie,這就會導緻你所依賴cookies的程式會失效或出錯,那麼若真出現使用者關閉cookies的情況,php應該如何再次使用session?方法還是有的。

  1、設定php.ini的session.use_trans_sid = 1或者打開enable-trans-sid選項,讓php自動跨頁傳遞session id。

  2、手動通過url傳值、隐藏表單傳遞session id。

  3、用檔案、資料庫等形式儲存session_id,在跨頁過程中手動調用。

  途徑1舉例說明:

  s1.php

  s2.php

  運作以上代碼,在用戶端cookie正常的情況下,應該可以在得到結果“源碼愛好者”。

  若此時關閉了用戶端的cookie,估計就得不到結果了,這時可設定php.ini中的session.use_trans_sid = 1或者編譯時打開--enable-trans-sid選項”,此時又可重新得到結果“源碼愛好者”

  途徑2舉例說明:

  隐藏表單的方法基本原理同上。

  途徑3舉例說明:login.html

  mylogin1.php

  mylogin2.php

  請關閉cookie再測試,使用者名:youngong 密碼:123 這是通過檔案儲存session id的,檔案是:e:tmpphpsid.txt。至于用資料庫的方法,就不舉例子了,與檔案的操作方法類似。以上方法有一個共同點,就是在前一頁取得session id,想辦法傳遞到下一頁,在下一頁的session_start();之前加代碼session_id(傳過來的session id);希望能為您提供一些參考。