この記事の例では、PHP が Cookie を使用してユーザーとのセッションを実装する方法について説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
PHP には、単純な Cookie や本格的なユーザー セッションなど、ユーザー情報の管理と記録に使用できる関数が多数含まれています。セッションでは、スーパーグローバル変数を参照するのと同じくらい簡単に状態を保存できる、PHP 言語に組み込まれたテクノロジを使用します。
1. クッキーの紹介
PHP スクリプトで Cookie を使用して、ユーザーに関する小規模な情報を保存できます。 Cookie は、サーバーまたはスクリプトからのリクエストに応じてユーザーのブラウザによって保存される少量のデータです。ユーザーのブラウザを通じて、1 人のホストが 20 個の Cookie の保存をリクエストできます。各 Cookie には、名前、値、有効期限に加えて、ホストとパスの情報が含まれています。 1 つの Cookie のサイズ制限は 4KB です。
Cookie を設定した後は、リクエストを行ったホストのみがデータを読み取ることができるため、ユーザーのプライバシーが確実に尊重されます。さらに、ユーザーは自分を介したすべての Cookie リクエストを受け入れるか拒否するようにブラウザを設定できます。したがって、Cookie は慎重に使用する必要があり、実装がユーザーに警告するように設計されていない環境では必須の要素として依存すべきではありません。
Web ブラウザが Cookie を保存するように設定されている場合、有効期限が切れるまで Cookie ベースの情報が保持されます。ユーザーがブラウザを使用して Cookie のパスとドメインに一致するページを閲覧すると、Cookie がサーバーに再送信されます。その後、PHP スクリプトは Cookie にアクセスできます。Cookie は環境変数 HTTP_COOKIE に含まれるか、または $COOKIE スーパーグローバル変数の一部として、次の 3 つの方法でアクセスできます。
コードをコピー コードは次のとおりです。
echo $_SERVER["HTTP_COOKIE"]; echo getenv("HTTP_COOKIE");
echo $_COOKIE["vegetable"];
PHP スクリプトで Cookie を設定するには 2 つの方法があります。まず、header() 関数を使用して SetCookie ヘッダーを設定します。 Header() 関数は、サーバー応答のヘッダー部分に含まれる文字列を予期します。ヘッダーは自動的に送信されるため、Jehol 出力がブラウザーに送信される前に header() を呼び出す必要があります。
コードをコピー コードは次のとおりです:head("Set Cookie:vegetable=artichoke; Expires=Tue,07-Mar-06 14: 39:58 GMT;パス=/;ドメイン=yourmain.com");
難しいことではありませんが、Cookie を設定するこの方法では、ヘッダー文字列を構築する関数を記述する必要があります。この例のように日付と URL エンコーディングの名前と値のペアをフォーマットすることは特に難しい作業ではありませんが、PHP にはこれを行うための関数 setcookie() が用意されているため、繰り返しの作業となります。
コードをコピー コードは次のとおりです: setcookie ( "vegetable" , "artichoke" , time ()+3600, "/" , ".yourdomain.com" , 0);
if ( isset ( $_COOKIE [ "vegetable" ])){
echo "
またこんにちは。" . $_COOKIE [ "vegetable" ] ;
}
他 {
echo "
こんにちは。初めての訪問かもしれません。
" ;訪問者がセッション対応ページにアクセスすると、新しい識別子が割り当てられるか、ユーザーは以前の訪問ですでに確立されている識別子に再関連付けされます。すでにセッションに関連付けられている変数は、$_SESSION スーパーグローバル変数を通じてコードで使用できます。 4. 会話を開始します コードをコピー コードは次のとおりです:
session_start(); セッション ID は " .session_id () ;
通常、セッション状態は一時ファイルに保存されますが、session_set_save_handler() と呼ばれる関数を使用してデータベース ストレージを実装することもできます。
echo "
?>
5. セッション変数を使用する
すべての PHP ドキュメント内の一意のセッション識別子にアクセスできることは、セッション機能の始まりにすぎません。セッションが開始されると、必要な数の変数をスーパーグローバル変数 $_SESSION に保存し、セッション対応のページからそれらの変数にアクセスできます。
次のプログラムは、スーパーグローバル変数 $_SESSION に 2 つの変数を追加します。
コードをコピー コードは次のとおりです:
session_start();
$_SESSION [ "product1" ] = "ソニック ドライバー" ;
$_SESSION [ "product2" ] = "HAL 2000" ;
echo "製品は登録されました。" ;
?>
コードをコピー コードは次のとおりです:
session_start();
echo "選択した製品は次のとおりです:" ;
エコー "
"
echo "
コードをコピー コードは次のとおりです:
session_start();
?>
<頭>
あなたの製品は登録されました!
;