ホームページ  >  記事  >  バックエンド開発  >  php cookie スコープ – 現在のページでは cookie を使用しない_PHP チュートリアル

php cookie スコープ – 現在のページでは cookie を使用しない_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:46:54900ブラウズ

ローカル テストではまったく問題がなかったので、リモート サーバー (公開サーバーではなく、公開サーバー上で直接変更しないことをお勧めします) に 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 ?
}

次に、次の内容の test1.php を作成します。 :

コードをコピーします コードは次のとおりです:
$td = date('d');
dsetcookie("testvar",$td,30*24*60*) 60);
print_r($_COOKIE) ;
?>

この $_COOKIE 変数を設定した後、初めて使用できるようになります。
次に、test1.php プログラムを少し変更してみましょう:


コードをコピーします コードは次のとおりです:
$td = date('d');
dsetcookie("testvar") ,$ td,30*24*60*60);
print_r($_COOKIE);//これをコメントアウトする必要があります。そうしないと、ヘッダー警告が報告されます
$location = "test2.php"; Location: ".$location ; ;


ここで次を取得します:
Array
(
[testvar] =10
)
ここでこの Cookie 値を取得して使用できます。
なぜですか? これは理解できます。現在設定されている Cookie はすぐには有効になりませんが、次のページまで表示されません。これは、Cookie が設定されたページ上でサーバーからクライアントのブラウザに渡され、その後有効になるためです。サーバーがクライアントのマシンから Cookie を取り出してサーバーに送り返すことができる理由については、次のページで説明します。 最初にここに書いてください:
次のリンクから COOKIE について詳しく学ぶことができます



PHP COOKIE とその使用法


Netscape の Cookie の公式オリジナル定義:
http://www.netscape.com/newsref/std/cookie_spec.html





http://www.bkjia.com/PHPjc/320033.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/320033.html

技術記事

ローカルテストでは全く問題がなかったので、リモートサーバー(公開サーバーではなく、公開サーバー上で直接変更しないことをお勧めします)にssh接続し、ブレークポイントテストを実施しました...

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:php 入門 adodb_PHP チュートリアル次の記事:php 入門 adodb_PHP チュートリアル

関連記事

続きを見る