2016-07-26 44 views
0

所以我已經搜查了w3schools和這個好網站一段時間,但我無法弄清楚這一點。PHP檢查響應的cookie值,響應不會在清除cookie後恢復

我有一個腳本在加載瀏覽器時在用戶會話中創建一個cookie,另一個腳本將檢查所述cookie的值,並根據值返回2個回顯。

腳本來創建cookie是:

<?php 
$cookie_name = "CTF"; 
$cookie_value = "ChangeThis"; 
if(!isset($_COOKIE[$cookie_name])) { 
setcookie($cookie_name, $cookie_value, time() + 86400, "/", NULL); 
} 
?> 

我IF檢查值如下:

<?php 
if($_COOKIE[$cookie_value] = "CTF") { 
    echo "Congratulations. Your token code is 4HeWPzK63Lf5NkGS"; 
    } else { 
    echo "Your cookie is not set yet."; 
    } 
?> 

代碼工作,而當cookie被改爲周大福它的回聲是的正確的路線。但是,當我刪除cookie並刷新頁面時,基本上將cookie重置爲「ChangeThis」的值,第一個回顯仍然出現在頁面上。

有人能指出我正確的方向嗎?

回答

1

問題是您的if條件。您已使用=而不是==。您正在分配值而不是比較。條件檢查分配是否成功。你需要的是下面的語句:

if($_COOKIE[$cookie_name] == "CTF") 

此外,cookie的值不是「周大福」,這是該cookie的名字,你應該要設置它的值進行比較。

+1

此外,它應該是像if($ _ COOKIE [「CTF」]!=「ChangeThis」) CTF是cookie名稱,而不是cookie值 – maalls

+0

@maalls你是對的..我已經更新了答案..然後OP還應該檢查值。 –

+0

啊是的,不能相信我忽略了這一點。對於檢查cookie值的IF語句,我最初希望它檢查cookie的值是否已更改(我基本上創建了CTF場景)。所以可以保留下來: IF($ _ COOKIE [「CTF」] =「CTF」 –