ここで何が問題なのか本当にわかりません。
完全に機能する「login.php」というスクリプトがあります。これは AJAX で呼び出され、正常に返されると、ページが更新され、ユーザーがログインします。そのページに Cookie が設定されます。
setcookie("main", $row[0], time() + 3600, "/")
次に、「logout.php」というスクリプトがあります。同じ方法で呼び出されます (AJAX とページの更新)。次の 2 行しかありません。
<?php
setcookie("main", "", time() - 3600, "/");
echo "Done";
?>
ページから呼び出してもうまくいかなかったので、ブラウザに logout.php をロードしました。出力は「完了」しましたが、Chrome で Cookie を確認すると、Cookie がまだ「1」($row[0]) に設定されており、login.php で設定された時間に期限切れになることがわかりました。
login.php と logout.php は両方とも、他のすべてのものと同じフォルダーである同じフォルダー (ルート ディレクトリ) にあります。
以前は、これは機能していましたが、私が行った唯一の変更は、Web サイトのタイトル バーを独自のファイル (ルート ディレクトリにあるまま) にすることと、ログアウト ボタンに JavaScript 機能を追加することです。これは単なる AJAX 呼び出しです。およびいくつかの jQuery ホバー効果を追加し、_js フォルダーにある独自のスクリプト ファイルにします。しかし、私は logout.php をまったく変更していないので、そこに直接移動しても機能するはずですよね? setcookie コマンドに何か問題があるのでしょうか、それとも他のどのような問題が原因でしょうか?
編集: -3600 ではなく 100 秒で有効期限が切れるように設定してから、完全に別の Cookie として認識できるように名前を変更してみました。どちらもそれを見せませんでした。クッキーはまったく設定されていません。
編集 2: 最後のコミットに戻しましたが、すべてが再び機能しています。いくつかの新しいファイルを作成してサイトを再編成すると (logout.php はまったく変更されません)、特定のスクリプトが Cookie を作成できなくなる理由がわかりません。