Firefox 检测到该服务器正在将此地址的请求循环重定向。 此问题可能是因为禁用或拒绝 Cookie 导致。...
今天在做phpcookie的實驗,按照例子在做,一切都沒有問題,就是賬戶退出上出現了問題。
問題:點擊退出后,從logout.php 回到 login.php 這個頁面。
在logout.php這個頁面中,主要是刪除cookie:代碼如下
<?php
/**
?*?
?* logout.php
?*/
?//刪除userName和userId兩個cookie:使cookie的有效期早于現在
?setcookie("userName",time()-1);
?setcookie("userId",time()-1);
?//跳回login界面
?header("Location:login_bac.php");
?//header(sprintf("Location:http://%s/php/34/code/login_bac.php",$_SERVER["HTTP_HOST"]));
??>
但是從logout.php跳轉到login.php時,firefox報錯:?Firefox 檢測到該服務器正在將此地址的請求循環重定向。 ? ? ?此問題可能是因為禁用或拒絕 Cookie 導致。
解決方法如下:將 logout.php中的?
?setcookie("userName",time()-1); 改為 setcookie("userName","")
?setcookie("userId",time()-1);改為 setcookie("userId","")
就可以了
原因是: 如果把cookie的失效改成當前時間之前,那么在我的login.php中,我需要訪問這個cookie,但是firefox34 中,并不會把這個cookie給刪除,我查看了 firefox中 cookie部分,發現,這個cookie只會在關閉瀏覽器后,才被刪除。那這邊就會出現問題。在我的login.php中,我訪問了一個過期的cookie,所以firefox才會報剛才的錯誤.
接下來,貼上login.php的代碼:這里我使用empty來判斷userId 這個cookie是否有效
?if(!empty($_COOKIE["userId"]))
? ? {
? ? ? ??
? ? ? ?
? ? ? ? $link = mysql_connect($dbcfg["host"],$dbcfg["uname"],$dbcfg["upass"]);
? ? ? ? if(!$link){
? ? ? ? ? ? die("連接數據庫失敗");
? ? ? ? }
? ? ? ? mysql_select_db($dbcfg["db"]);
? ? ? ? $sql = ?sprintf("SELECT userId,userName,userPass FROM it_users where userId = %s",$_COOKIE["userId"]);
? ? ? ? $re = mysql_query($sql);
? ? ? ? if(mysql_num_rows($re)==1){
? ? ? ? ? ? $row = mysql_fetch_assoc($re);
? ? ? ? ? ? setcookie("userName",$row["userName"]);
? ? ? ? ? ? header("Location:http://".HOST."/php/34/code/success_bac.php"); ? ?
? ? ? ? }
? ? ? ? else{
? ? ? ? ? ? echo("查詢失敗,請重新登錄");
? ? ? ? ? ? setcookie("userId",time()-10000);
? ? ? ? ? ? setcookie("userName",time()-10000);
? ? ? ? ? ? header("Location:http://".HOST."/php/34/code/login_bac.php");
? ? ? ? ? ??
? ? ? ? }
? ? ? ? mysql_close($link);
? ? ? ??
? ? ? ??
? ? }
轉載于:https://blog.51cto.com/3251598/1614715
總結
以上是生活随笔為你收集整理的Firefox 检测到该服务器正在将此地址的请求循环重定向。 此问题可能是因为禁用或拒绝 Cookie 导致。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS浮动(float)属性学习经验分享
- 下一篇: 〖Linux〗简单的将Shell和一些文