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)