2012-01-17 16 views
0

クッキーの設定に問題があります。問題は、私のクッキーが設定されていないということです。設定されているかどうかを確認するためにテストをセットアップしましたが、決して設定されていません。私は何かが設定されているかどうかを私のブラウザでチェックしましたが、私のサイトからは何もありません。PHPクッキーが設定されていません

私はクッキーを設定するのを手伝ってください。私は何をすべきかはかなり分かりません。ありがとうございました。ここで

は私のコードです:

<?php 
session_start(); 

setcookie("ridArray","", time()+3600); 

if (isset($_COOKIE['ridArray'])) { 
    echo "ridArray is set.";  
} 
?> 
<head> 
</head> 
<html> 
<body> 
<?php 
if (isset($_COOKIE['ridArray'])) { 
    echo "ridArray is set.";  
} else { echo "not set"; } 
?> 
</body> 
</html> 
+2

ページを更新しましたか?クッキーは、同じリクエストで '$ _COOKIE'で利用可能になりません。 – deceze

+4

空の値でクッキーを設定することはできません。 チェックこの http://stackoverflow.com/questions/8775572/setcookie-to-an-empty-value-not-working – WordsWorth

+0

はい、私が試してみた:/ – tushar747

答えて

4

はこちらSetCookieドキュメントから、問題です:

クッキーは、それらがで設定されたのと同じパラメータで削除する必要があります。 value引数が空の文字列またはFALSEで、かつ他のすべての引数が以前のsetcookieの呼び出しと一致する場合、指定された名前を持つクッキーはリモートクライアントから削除されます。これは、内部的には、値を「deleted」に設定し、有効期限を過去1年間に設定することによって達成されます。

クッキー値を空の文字列( "")に設定しています。試してみてください:

setcookie("ridArray","not blank value", time()+3600); 

他の問題は、あなたがクッキーを設定すると、それは次のページのロードまで($ _COOKIEを介してアクセス)リクエストヘッダにはならないだろうということです。つまり、最初にそのページを読み込むと、$ _COOKIE ['ridArray']は設定されません。その後のロードでは、それが設定され、毎回リセットされます。

最初のページの読み込みは設定されません。リフレッシュし、設定されます。

クッキーをデバッグする最も簡単な方法は、Chromeの開発ツールやFirefoxのFireBugなどを使用して、SetCookieヘッダのレスポンスヘッダとリクエストヘッダを見て、ブラウザが送信しているクッキーを確認することです。

0
$myvar = "test"; 
if (!isset($_COOKIE['lng'])) { setcookie("lng",$myvar); $_COOKIE['lng'] = $myvar; } 
関連する問題