PHP で Cookie を設定および削除するには setcookie を使用します。有効期限が切れると自動的に削除されますが、ff では有効期限が切れない Cookie に遭遇する可能性があります。
まず、PHPマニュアルでCookieを削除する手順を見てみましょう
bool setcookie (文字列名 [, 文字列値 [, int期限切れ [, 文字列パス [, 文字列ドメイン [, bool secure]]]]] )
Cookie を削除するには、ブラウザの削除メカニズムをトリガーするために、Cookie の有効期限が過去であることを確認する必要があります。
次の例は、設定したばかりの Cookie を削除する方法を示しています。 例 2. setcookie() delete
例
コードは次のとおりです | コードをコピー |
//有効期限を 1 時間前に設定します setcookie("TestCookie", "", time() - 3600); |
ユーザーのログイン情報を保存してから使用してください
コードは次のとおりです | コードをコピー |
setcookie("ユーザー名", "", time()-3600); |
問題なく終了し、IE でテストします。 Web サイトを構築するのですから、できるだけ多くのブラウザと互換性を持たせる必要があります (笑)。そこで Firefox でテストしたところ、ログイン時はすべて正常に動作しました。しかし、起動すると問題が発生しました。ログアウトする方法はなく、ユーザーは常にログインしたままになります。そこで IE と Firefox の Cookie レコードの違いを確認してみたのですが、試してみてふと気づきました。
setcookie() の 4 番目のパラメーター (正当なパス パラメーター) が指定されていない場合、デフォルトで現在のディレクトリが正当なパスとして使用されることがわかり、テストしたパスは http://127.0.0.1/ です。 php/rss2fla/data /log .php なので、ログイン時とログアウト時に設定される Cookie のパスが異なります。
IE は Firefox よりも使いやすいです (笑)、パスを指定すると、現在の IP の下で同じ名前の Cookie 変数が上書きされます。ただし、FireFox はより厳密で、新しい変数が作成されます。
いくつかの例を見てみましょう:
シンプル:
コードをコピー | |
SetCookie("MyCookie", "MyCookie の値");
|
コードをコピー | |
|
コードをコピー | |||||
;
|
コードは次のとおりです | コードをコピー |
if(isset($_COOKIE["sid"]) && !empty($_COOKIE["sid"])){ // これにより、Cookie が存在し、有効期間内であることが保証されます …… } |