2013-12-23 113 views
0

我使用cookie我的登錄系統和系統適用於Chrome,但後來當我去到IE或Safari瀏覽器,它不工作。由於某些原因,cookies沒有設置,我試圖迴應他們無濟於事。Cookie在Chrome中運行,但不在IE或Safari中運行?

這裏是使餅乾代碼:

if(isset($_POST['log_in_iniator'])){ 
    $username = $_POST['username']; 
    $password = $_POST['password']; 
    $log_in_checker_status = check_user_data($username, $password); 
    if($log_in_checker_status == 'true'){ 
     //user has successfully logged in, create two cookies 
     //cookie 1 username 
     setcookie('username', $username, 0, 'http://shkeek.com'); 
     setcookie('loginstatus', 'true', 0, 'http://shkeek.com'); 
     header("Location: index.php"); 
    }else{ 
     setcookie('loginstatus', 'invalid', 0); 
     header("Location: index.php"); 
    } 
} 

回答

2

變化:

setcookie('username', $username, 0, 'http://shkeek.com'); 

要:

setcookie('username', $username, (24*60*60), '/'); 

或者:(見下文)

setcookie('username', $username, (24*60*60), '/', '.shkeek.com'); 

爲什麼:

您正在設置從現在的「過期」時間爲0秒。因此,Chrome瀏覽器正在製作一個「會話」cookie(當您關閉瀏覽器時將會過期),而IE和FF將完全按照您告訴他們的做法 - 將任何匹配的cookie過期。

(24*60*60)是 「一天」; 24小時* 60分鐘*從現在起60秒。

對於「域路徑」的一部分,你只需要設置「/」當前服務器和服務器路徑。

如果你有一個以上的子域名支持的網站,使用'/', '.shkeek.com'代替。然後,您有www.shkeek.comshkeek.comimg.shkeek.com.shkeek.com任何其他子域的支持。

有關更多詳細信息,請檢查PHP docs

相關問題