ローカル テストではまったく問題がなかったので、リモート サーバー (公開サーバーではなく、公開サーバー上で直接変更しないことをお勧めします) に ssh 接続し、ブレークポイント テストを実施したところ、最終的にこの関数はコンストラクターでログイン検証を呼び出します。認証が通らなかったので飛び降りました。
プログラムによる php cookie の使用を見てみましょう。おそらく、上の段落を読んでも、これと cookie の間にはどのような関係があるのか疑問に思っているのではないでしょうか。
MVC 構造で使用されるログイン検証について一般的に説明します。
コントローラーのコンストラクターには、特にログインを検証する関数があります。この関数は、モジュールがログイン検証を必要とするかどうかに応じて追加されます。
バグ プログラム: setcookie の後、現在のページでログイン検証が行われます。
バグの原因: 現在のページはこのページに設定したばかりの Cookie を取得できません
プログラムでテストしてみましょう:
ここに Cookie を設定する関数があります。私は怠け者です。
コードをコピー コードは次のとおりです。
function dsetcookie($var, $value, $life = 0) {
グローバル $_cookie_domain, $_cookie_path, $_timestamp, $_SERVER;
setcookie($var,scape($value), $life ? $_timestamp $life : 0,
$_cookie_path, $_cookie_domain, $ _SERVER['SERVER_PORT '] == 443 ? 1 : 0);
$td = date('d'); dsetcookie("testvar",$) td,30*24*60* 60);
print_r($_COOKIE)?>
はいつ取得できますか?この $_COOKIE 変数を初めて使用する場合はどうすればよいでしょうか?
次に、test1.php プログラムを少し変更してみましょう:
< ;? php $td = date('d'); dsetcookie("testvar",$td,30*24*60*60);//これは必要ですそれ以外の場合は、ヘッダー警告が報告されます。 $location = "test2.php"
header("Location: ".$location);
;
次に、test2.php に $_COOKIE を表示するには、見てください
コードをコピーします
コードは次のとおりです:
(
[testvar] =10
)
こちら この Cookie 値を取得して使用できます。
なぜですか?