2011-10-28 19 views
1

私のコンピュータにクッキーが設定されていません。ローカルでは動作しますが、動作しません。私はクッキーが20分間存在することを望みます。私が考えることができる唯一の理由は、サーバーが状態にあるため動作しません。私はx時間先です。したがって、クッキー設定時間は既に期限切れです。これは正しいです?PHP - クッキーの有効期限+時間を設定する

setcookie($cookiename, $cookie, time() + 1200); 

サーバ時間が6am、私の時間が12pmの場合。クッキーの有効期限は、午前6時20分または午後12時20分に設定されますか?

前者の場合、ユーザーの現地時間に基づいてCookieの有効期限を設定するにはどうすればよいですか?それが遅ければ、私は月曜日にもう少しトラブルシューティングをします。

+0

これは簡単にデバッグできます: 'echo time();' – str

答えて

0

time()関数はサーバー時間を取得しますが、CookieはGMT時間を使用すると考えています。私は同様の問題を持っていた

setcookie($cookiename, $cookie, gmdate('U') + 1200); 
1

<?php 
    $gmtime = gmdate('U'); 
?> 

だからあなたは、このようなクッキーを設定したい:

PHPからGMの時間を取得する最も簡単な方法は、使用することです過去、私が常に与えられたアドバイスは、クッキー(異なる時間帯に設定されている場合)が最低25時間の有効期限を持つことを確認することです。これにより、誰でもどこでもクッキーを利用することができます。多くの場合、無効なクッキー=アクセスなし=大きな問題です。

現代のコンピューティングはこれを予約しており、同期された時間は、ユーザーの現地時間に常にクッキーが設定されるようにします。それでも、例外はまだ見つかるはずです。

クッキーを有効にするのに非常に短い時間ですが、それを増やすことを検討してください。クッキーがまだローカルに設定されていない場合は、ブラウザがサーバーからの受信Cookieをブロックしたと見なします。

+0

は私のために働いてくれてありがとう – periklis

関連する問題