2014-10-07 43 views
0

我知道未定義的索引問題已被問及之前回答。但請稍等一下我。我找不到這個具體案例的答案。 (和一個不尋常的情況下,它是。)未定義的索引:在setCookie的Name參數中的Array

這工作沒有任何問題......

<?php 
session_start(); 
if (! isset ( $_SESSION['loggedin'])) { 
    $_SESSION['loggedin'] = FALSE; 
} 

$expiry = time()+60*60*9000; 
setcookie('loggedin', 'foo', $expiry); 

echo "sessionvalue " . $_SESSION['loggedin'] . '<br>'; 
echo "cookievalue " . $_COOKIE['loggedin'] . '<br>'; 

?> 

...生產這種輸出

sessionvalue 1 
cookievalue foo 

但是,當我改變了名稱參數該setCookie方法到一個數組,像這樣:

<?php 
    session_start(); 
    if (! isset ( $_SESSION['loggedin'])) { 
    $_SESSION['loggedin'] = FALSE; 
    } 

    $expiry = time()+60*60*9000; 
    setcookie('cookievalue[loggedin]', 'foo', $expiry); 

    echo "sessionvalue " . $_SESSION['loggedin'] . '<br>'; 
    echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>'; 

?> 

我得到未定義指數的通知,像這樣:

sessionvalue 1 

Notice: Undefined index: cookievalue[loggedin] in /Applications/XAMPP/xamppfiles/htdocs/simpleauth/headersessioncookie.php on line 13 
cookievalue 

我該如何申報以及如何避免第二種情況下的「通知」?

+2

嘗試'回聲 「cookievalue」。 $ _COOKIE ['cookievalue'] ['loggedin']。 '
';' – 2014-10-07 14:59:33

+0

@ V4KK4R應該只要PHP 5.4的工作 – 2014-10-07 15:01:45

+0

http://php.net/manual/en/function.setcookie.php看例子#3 – 2014-10-07 15:02:00

回答

1
echo "cookievalue " . $_COOKIE['cookievalue[loggedin]'] . '<br>'; 

應該

echo "cookievalue " . $_COOKIE['cookievalue']['loggedin'] . '<br>'; 
+0

你剛剛複製粘貼什麼評論@ V4KK4R說? :) – gsamaras 2014-10-07 15:29:15

+0

@ G.Samaras Huh,我沒有注意到。下次我會確保閱讀所有的評論。感謝您指出了這一點! – helllomatt 2014-10-07 15:30:37