私がコメントしたように、あなたの説明から(かなり曖昧であまり理解できませんが)、サーバーに送信される前に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.php
2つのオプションがあります。
オプション1:postをlogin.phpに戻し、Cookieを設定してから、にリダイレクトしaccount.php
ます。オプション2:、POSTスルーなどのゲートウェイを用意しlogincheck.php
、Cookieを設定してから、にリダイレクトしaccount.php
ます。
このように、account.php
常にあなたのクッキーを見ることができます。