2

わかりました、私は完全に困惑しています。

これが私のコードです:

if ($password == $correct_password[0] && !isset($_COOKIE['user'])) {
            setcookie("user", $email, time() + 3600);
            var_dump(isset($_COOKIE['user']));
            echo "!";
        }

したがって、var_dumps を実行しています。つまり、setcookie を呼び出す必要があります。しかし、その直後の行(設定されているかどうかを確認しています)は、設定されていないと言っています!

誰かが問題を指摘できれば、それは大歓迎です。ありがとう

4

4 に答える 4

1

$_COOKIE は、スクリプトが最初に起動されたときに設定/ロードされ、スクリプトの存続期間中、PHP によって再度更新されることはありません。setcookie を介して Cookie を設定すると、スクリプトの次の実行時に $_COOKIE にのみ表示されます。

これは、$_SESSION を除くすべてのスーパーグローバルに適用されます。それらはスクリプトの起動時に設定/初期化され、その後 PHP がそれらに再び触れることはありません。$_SESSION は、呼び出したときsession_start()(またはセッションが自動開始に設定されたとき) に入力されます。これは、スクリプトの有効期間内に複数回実行される場合があります。

于 2012-03-19T03:19:35.593 に答える
1

PHPはサーバーサイド言語です。

つまり、必要なものを生成してクライアントに渡すことができます。
以上です。
単一の要求に前後はありません。

1º you instruct the page 'A' to set a cookie
2º client recieves page 'A' and sets the cookie
3º client asks for page 'B' (sending the cookie)
4º server can identify the cookie (only on page 'B')

このページは、サーバー呼び出しを理解する簡単な方法として使用されます。
この目的のために、同じページを 2 回要求できます。

于 2012-03-19T03:20:30.140 に答える
0

確かな有効な答えはまだ見つかりませんでしたが、何時間にもわたるテストの後、時間の経過とともに何かのように思えます. 有効期限をリアルタイムに近づけすぎると、登録されないか何かです。時間をさらに設定するとうまくいくように見えましたが、再び重いテストを行う前に休憩しています。ありがとう

于 2012-03-22T16:21:38.860 に答える
0

setcookie() を使用すると、次にHTML が読み込まれたときにその値が保存されます。割り当てたばかりの値で vardump を見たい場合は、$_COOKIE['cookie_name'] = $value; を使用する必要があります。

于 2012-04-16T00:42:16.767 に答える