2

関数 set cookie を使用して (id) cookie を次のように設定しています。

$cookie_id = $insert_userid;
setcookie("id", $cookie_id, time() + 31556926, '/', 'www.example.com');

上記のコードは正常に動作しています。Firefox で設定を確認していますが、正しい Cookie があります。私のWebsiteの他のページで、Cookieが設定されているかどうかを確認したいと思います。Cookie が設定されていない場合、このコードを使用してリダイレクトしています。Cookie が設定されているかどうかに関係なく、両方の方法でリダイレクトされます。

<?php
if(isset($_COOKIE['id'])){
//do something.
}else{
header('Location: login.php');
}
    ?>

この問題を解決するにはどうすればよいですか?

Var ダンプの結果は次のとおりです。

array(4) { ["link"]=> string(43) "http://www.zzz.com/zzz" ["__unam"]=> string(30) "a5caeed-1385397a335-7fca86ad-2" ["PHPSESSID"]=> string(26) "6khzzzzzzzzjd51i6hamm0" ["id"]=> string(10) "zzzzzzzzzz" } 

更新: 作成した同じページの Cookie をチェックしていません。

4

1 に答える 1

2

問題を見つけるのを助けるために、これを試してください:

var_dump($_COOKIE['id']); exit;

の前にそれを置きifます。理想的には、Cookieの値が表示されるはずです。が表示されている場合はNULL、Cookieが渡されていません。

渡されていない場合var_dump($_COOKIE); exit;は、配列を取得するかどうか、取得する場合はidキーがあるかどうかを確認してください。

Cookieが送信されていることを確認し、開発者ツールまたはブラウザに相当するものを確認してください。

于 2012-07-04T20:02:24.443 に答える