2016-04-30 96 views
1

我有一些代碼:檢查Cookie是否爲空或在php中設置無效?

<?php 
    $cookiename1 = "uservalue"; 
    $cookie1 = (string)$_COOKIE[$cookiename1]; 
    if($cookie1 != ""){ 
     echo "<span style = 'color: white'>". $cookie1 . "</span>"; 
    } 
    else{ 
     die("Could not get profile"); 
    } 
?> 

這是爲了檢測一個cookie是空的或沒有,但如果cookie等於「」然後運行它的回聲聲明。

我本來有:

<?php 
    $cookiename1 = "uservalue"; 
    $cookie1 = $_COOKIE[$cookiename1]; 
    if(isset($cookie1) && !empty($cookie1)){ 
     echo "<span style = 'color: white'>". $cookie1 . "</span>"; 
    } 
    else{ 
     die("Could not get profile"); 
    } 
?> 

,但我得到了相同的結果。不知道我在這裏做錯了什麼= /如果有人可以幫助這將是很棒的。

+0

該cookie存在,但它是空的... –

+0

是的這是正確的。我正在檢查它是否爲空,並且因爲它應該死掉(「無法獲取配置文件」),而是運行echo語句。 – Pixelknight1398

回答

2

您需要使用setcookie()

例子:

setcookie("uservalue", "some-value", time()+3600, "/", "example.com", 1); 

設置cookie後,您可以檢查它是否是空的:

if (!empty($_COOKIE["uservalue"])){ 
    echo "<span style='color: white'> cookie isn't empty </span>"; 
} 

emptytrue在以下條件下:

"" (an empty string) 
0 (0 as an integer) 
0.0 (0 as a float) 
"0" (0 as a string) 
NULL 
FALSE 
array() (an empty array) 
var $var; (a variable declared, but without a value in a class) 
+0

那麼這個cookie已經存在於瀏覽器中,並且它被設置爲一個空字符串。如果你沒有注意到,我已經檢查了第二塊代碼中的isset和!空白,它返回了與第一塊相同的結果。 – Pixelknight1398

+0

做一個'var_dump($ _ COOKIE [「uservalue」])'你看到了什麼? –

+0

我看到字符串(2)「」「」 – Pixelknight1398