ローカル テストではまったく問題がなかったので、リモート サーバー (公開サーバーではなく、公開サーバー上で直接変更しないことをお勧めします) に ssh 接続し、ブレークポイント テストを実施したところ、最終的にこの関数はコンストラクターでログイン検証を呼び出します。認証が通らなかったので飛び降りました。
プログラムによる php cookie の使用を見てみましょう。おそらく、上の段落を読んでも、これと cookie の間には何の関係があるのか疑問に思っているのではないでしょうか。
MVC 構造で使用されるログイン検証について一般的に説明します。
コントローラーのコンストラクターには、特にログインを検証する関数があります。この関数は、モジュールがログイン検証を必要とするかどうかに応じて追加されます。
バグ プログラム: setcookie の後、現在のページでログイン検証が行われます。
バグの原因: 現在のページは、このページに設定されたばかりの Cookie を取得できません
プログラムでテストしてみましょう:
ここに Cookie を設定する関数があります。今それを使用しています。私たちは怠け者です
コードをコピーします コードは次のとおりです。
function dsetcookie($var, $value, $life = 0) {
global $_cookie_domain, $_cookie_path, $_timestamp, $_SERVER; ), $life ? $_timestamp + $life : 0,
$_cookie_path, $_cookie_domain, $_SERVER['SERVER_PORT'] == 443 ?
}
コードをコピーします コードは次のとおりです:
$td = date('d');
dsetcookie("testvar",$td,30*24*60*) 60);
print_r($_COOKIE) ;
?>
コードをコピーします コードは次のとおりです:
$td = date('d');なぜですか? これは理解できます。現在設定されている Cookie はすぐには有効になりませんが、次のページまで表示されません。これは、Cookie が設定されたページ上でサーバーからクライアントのブラウザに渡され、その後有効になるためです。サーバーがクライアントのマシンから Cookie を取り出してサーバーに送り返すことができる理由については、次のページで説明します。 最初にここに書いてください:
次のリンクから COOKIE について詳しく学ぶことができます
PHP COOKIE とその使用法