こんにちは、ここに投稿したコードで問題が発生しました (非常に縮小されたバージョンであるため、わかりやすくするために多くの html が省略されています)。目標は、Cookie が存在し、それが満たされているかどうかを確認することです。グローバル変数 $_POST が空の場合、Cookie が存在するかどうか、または何らかの理由で空であるかどうかをチェックします。Cookie が存在しないか空である場合。それは1つを作成します。次に、HTML フォームの前にコンテンツを表示します
フォームの送信がクリックされると、ページ自体が呼び出され、もちろん $_POST が入力されます。したがって、コードの後半は、Cookie のコンテンツを読み取って表示します。
実際には、ページを呼び出すと、Cookie が作成されますが (ブラウザーで確認しました)、最初の読み取り値は表示されません! 送信をクリックすると、Cookie のコンテンツが読み取られます。または、F5 でページを更新すると、それが表示されます。
しかし、「初めて」ページをロードしたときではありません。
どこで間違いを犯したかを教えてください。
if (!$_POST) {
// Create Cookie
if (!isset($_COOKIE["ID"]) || ($_COOKIE["ID"] != true)){
$order_id = time();
$lifetime = 600;
setcookie("ID",$order_id,time()+$lifetime);
}//End IF "create cookie"
...
...
...
$order_id = $_COOKIE["ID"];
echo $pag = <<< FORM
$order_id
<form action="page.php" method="post">
...
...
<input type="submit">
</form>
FORM;
} elseif ($_POST) {
// Read Cookie for Contract
echo $order_id = $_COOKIE["ID"];
echo $order_id_date = date('l jS \of F Y');
...
...
...
setcookie("ID","",-50000);
} // End IF ELSEIF