私がコメントしたように、あなたの説明から(かなり曖昧であまり理解できませんが)、サーバーに送信される前にCookieを読み取ろうとしていることが問題である可能性があります。
クッキーの仕組みは次のとおりです。
- あなたはリクエストをします
- サーバーはCookieヘッダーをクライアントに送り返します
- ページの読み込み-このページの読み込み時にCookieはPHPに表示されません
- 更新
- クライアントはCookieヘッダーをサーバーに送信します
- サーバーはCookieヘッダーを受信するため、PHPはそれを読み取ることができます
- ページの読み込み-Cookieはここに表示されます。
まだ試していない場合は、もう一度更新してください。
設定と同時に読みたいので、設定した値を保存して使ってください。または(これはテストされていませんが)、$_COOKIEアレイに手動で設定することもできます。
だからこのようなもの:
setcookie("helloworld", .. );
$_COOKIE['helloworld'] = $value;
その後、あなたはそれを普通に読むことができます。自動スーパーグローバルの値をオーバーライドすることはお勧めしません(、、、$_REQUESTなども同様です)。代わりに$_POST、$_GET設定している値を保存して使用することをお勧めします。
もう1つのアプローチは、「ゲートウェイ」の形式を使用することです。つまり、ゲートウェイページにCookieを設定すると、次のページにリダイレクトされ続けます。
たとえば、フローが次のようになっているとします。- login.php> account.php。ログインフォームを直接POSTするのではなく、account.php2つのオプションがあります。
オプション1:postをlogin.phpに戻し、Cookieを設定してから、にリダイレクトしaccount.phpます。オプション2:、POSTスルーなどのゲートウェイを用意しlogincheck.php、Cookieを設定してから、にリダイレクトしaccount.phpます。
このように、account.php常にあなたのクッキーを見ることができます。