12

ログインチェックが正常なときに設定される次のコードがあります。

if((isset($_POST["remember_me"]))&&($_POST["remember_me"]==1))
    {
    setcookie('email', $username, time()+3600);
    setcookie('pass', $pass, time()+3600);
    }

さて、ログアウトリンク(logout.php)をクリックすると、次のようになります。

<?php session_start();
setcookie("email", '', 1, "");
setcookie("pass", '', 1, "");
$_SESSION["login"] = "";
header("location: aforum/enter_furom.php");
?>

すべてのセッションを破棄したくないので、destroy sessionを使用しませんでした...セッションの破棄は正常に機能しています...しかし、Cookieの設定を解除しようとすると、ブラウザー(すべてのブラウザー:エクスプローラー、クローム、Firefox) 、mozilla)新しいCookieを設定できないというエラーが表示されます...上記のCookieの設定を解除するのに役立ちますか?

4

8 に答える 8

15

スーパーグローバル_COOKIE変数を使用するか:

unset($_COOKIE['mycookiename']);

またはCookie名のみsetcookie()で呼び出します

setcookie('mycookiename');

ログアウト時に Cookie をリセットするには:

setcookie('pass');
setcookie('email');

ログインチェックのために:

if(
  isset($_POST["remember_me"]) &&
  $_POST["remember_me"]==1  &&
  $_COOKIE['pass'] != NULL &&
  $_COOKIE['email'] != NULL &&
)
于 2012-09-19T09:20:34.430 に答える
9
setcookie('cookiename', '', time()-3600);
于 2012-09-19T09:40:36.630 に答える
2

ブラウザで、Cookie が動作するディレクトリを確認してください。Cookieのパスを指定して設定を解除します。例のように、Cookie ディレクトリが/aforum/

setcookie ("email","",time()-1,"/aforum/","http:// yourdomain.com");
于 2014-05-24T08:15:51.273 に答える
1

PHP で Cookie の設定を解除するには、有効期限を過去の時刻に設定するだけです。例えば:

$expire = time() - 300;
setcookie("email", '', $expire);
setcookie("pass", '', $expire);
于 2012-09-19T09:39:12.717 に答える
0

少なくとも Chrome と IE8+ では、次のようにしてブラウザから Cookie を削除します。$_COOKIEただし、ページがリロードされるまで配列に反映されません。

setcookie('cookiename','',0,'/',$cookieDomain)

ここでいくつかのパラメーターを省略できる場合もありますが、重要なことは、空の文字列を設定していることです。これにより、ブラウザーから Cookie が削除されます。

于 2015-04-09T16:02:57.307 に答える
0

有効期限を過去に設定する必要があります。

setcookie('email', '', time()-3600);

また、 には を使用する必要がありAbsolute URIますheader('Location:' ....)

于 2012-09-19T09:42:09.143 に答える