2011
Oct
04

記得好多年前有個案子,明明登入功能就開發得好好的,也用了好多個網站,可是有一天客戶卻說,他怎麼也無法登入,每次一登入,按下一個頁面馬上就被登出了,通常這種情況有兩種可能。

  • 1.暫存 (cache) : 大部分的瀏覽器會自動暫頁面,當客戶在未登入狀態點擊 xxx.php時,網頁會輸出要求登入的畫面,這時瀏覽器就會暫存登入畫面,等到客戶登入的時候,瀏覽器還是會吐出暫存的畫面。

解決方式:在php開頭指示瀏覽器取消暫存

  1. header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
  2. header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
  3. header("Cache-Control: no-store, no-cache, must-revalidate");
  4. header("Cache-Control: post-check=0, pre-check=0", false);
  5. header("Pragma: no-cache");

在html head裡輸入meta語法:

  1. <meta http-equiv="pragma" content="no-cache" />
  • 2.客戶的電腦,時間不對,當網站是用 cookie來儲存登入資料時,若是電腦的時間不正確,會使用cookie失效,造成無法登入的狀況,發生於 IE ,chrome。

解決方式: 通知客戶修改系統時間,或是改用session。


回應 (Leave a comment)