0

私のログイン確認スクリプト -

if($pass == $hash) setcookie("cookiename",$cookieVal);

これにより、Cookie がブラウザに保存されます。これで問題ありません。私はそれを自分でチェックしました。

ただし、別のページで Cookie が存在するかどうかを確認すると、false が返されます。

if(isSet($_COOKIE['cookiename'])) echo "Cookie is set"; else echo "Not set";

上記のコードは、ブラウザ ウィンドウに「設定されていません」と出力します。

また、試してみると、出力echo $_COOKIE['cookiename'];はエラーになりますNotice: Undefined index: cookiename

どうやらブラウザ (Firefox) は Cookie を識別できないようですが、ブラウザのオプション タブを確認すると存在することがわかります。後で、Chrome と IE でも試しました - 同じ問題です。

私は何を間違っていますか?

更新:if(isSet($_COOKIE['cookiename'])) echo "Set";ログイン検証スクリプトの最後に追加したところ、Cookie が検出されました (「設定」が出力されました)。しかし、他のページでは検出されていません。

4

1 に答える 1

1

デフォルトでは、Cookie は指定されたパスでのみ使用できます。Pathパスを示す Firebug/Chromeの列が表示されます。ドメイン全体 (サブドメインを除く) で Cookie にアクセスできるようにするには、次を使用します。setcookie("cookiename", $cookieVal, strtotime('+1 year), '/');

于 2013-07-02T15:44:21.060 に答える