PHP は Cookie を使用してユーザーとのセッションを実装します。phpcookie はセッションを実装します_PHP チュートリアル
phpはCookieを使用してユーザーとのセッションを実装し、phpcookieはセッションを実装します
この記事の例では、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 スクリプトは環境変数 HTTP_COOKIE にある Cookie にアクセスするか、$COOKIE スーパーグローバル変数の一部として 3 つの方法でアクセスできます。
echo $_COOKIE["野菜"];
2. PHPを使用してCookieを設定します
PHP スクリプトで Cookie を設定するには 2 つの方法があります。まず、header() 関数を使用して SetCookie ヘッダーを設定します。 Header() 関数は、サーバー応答のヘッダー部分に含まれる文字列を予期します。ヘッダーは自動的に送信されるため、Jehol 出力がブラウザーに送信される前に header() を呼び出す必要があります。
Setcookie() 関数はその名前が示すとおりの動作を行い、Set-Cookie ヘッダーを出力します。したがって、他のコンテンツがブラウザに送信される前に呼び出す必要があります。この関数は、Cookie 名、Cookie 値、UNIX タイムスタンプ形式の有効期限、パス、ドメイン、および最初のパラメータに加えて、Cookie が安全な接続を介してのみ送信される場合は 1 に設定される整数を受け入れます。この関数はオプションです。
if ( isset ( $_COOKIE [ "野菜" ])){
echo "
またこんにちは。" . $_COOKIE [ "vegetable" ] ;
"
}
他に{
echo "
こんにちは。初めての訪問かもしれません。
" }?>
スクリプトの最初の実行時に Cookie を設定したとしても、この時点では $_COOKIE["vegetable"] 変数は作成されません。 Cookie はブラウザがサーバーに送信するときにのみ読み取られるため、ユーザーがこのドメイン内のページに再度アクセスするまでは読み取れません。
正式に言えば、Cookie を削除するには、Cookie 名パラメータを指定して setcookies() を呼び出すだけです:
setcookie("野菜");
ただし、このアプローチは常に機能するとは限らず、信頼できません。代わりに、Cookie を削除するには、有効期限が切れていることが確実な時刻を Cookie に設定します。この方法が最も安全です。
Setcookie("野菜", "", time()-60, "/", "yourdomain.com", 0);
また、最初に Cookie を設定するために使用したものと同じパス、ドメイン、セキュリティ パラメータを setcookie() に渡すようにしてください。
3. セッション機能の概要
訪問者がセッション対応ページにアクセスすると、新しい識別子が割り当てられるか、ユーザーは以前の訪問ですでに確立されている識別子に再関連付けされます。すでにセッションに関連付けられている変数は、$_SESSION スーパーグローバル変数を通じてコードで使用できます。
通常、セッション状態は一時ファイルに保存されますが、session_set_save_handler() と呼ばれる関数を使用してデータベース ストレージを実装することもできます。
4. セッションを開始します
echo "
セッション ID は " .session_id () ;
"
?>
5. セッション変数を使用する
すべての PHP ドキュメント内の一意のセッション識別子にアクセスできることは、セッション機能の始まりにすぎません。セッションが開始されると、必要な数の変数をスーパーグローバル変数 $_SESSION に保存し、セッション対応のページからそれらの変数にアクセスできます。
次のプログラムは、スーパーグローバル変数 $_SESSION に 2 つの変数を追加します。
$_SESSION [ "product1" ] = "ソニック ドライバー" ;
$_SESSION [ "product2" ] = "HAL 2000" ;
echo "商品は登録されました。" ?>
上記のプログラムの魔法は、ユーザーが新しいページに移動するまで実現されません。次のプログラムは、スーパーグローバル変数 $_SESSION に格納されている変数にアクセスする単一の PHP スクリプトを作成します。
エコー「
- 」
echo "
- " . $_SESSION [ " " echo "
- " . $_SESSION [ " " エコー「
次のプログラム リストは、ユーザーが複数の製品を選択できるフォームを作成します。セッション変数を使用して、基本的なショッピング カートを作成できます。
arraysession.php:
コードをコピーします
コードは次のとおりです:
?>
<頭>
セッションを使用して配列を保存する
製品選択ページ
if ( isset ( $_POST [ "form_products" ])){
if (! empty ( $_SESSION [ "products" ])){
$products = array_unique (
array_merge ( unserialize ( $_SESSION [ "products" ]),
$_POST [ "form_Produces" ]));
}
それ以外
{
$_SESSION [ "products" ] = シリアル化 ( $_POST [ "form_products" ]);
}
echo "
あなたの製品は登録されました!
" ;}
?>
<フォームメソッド = "POST" アクション = " " >
いくつかの商品を選択してください:
<名前を選択 = "form_product[]" 複数 = "複数" サイズ = "3" >
ソニック ドライバー オプション>
ハル 2000 オプション>
ターディス
ORAC
トランスポーター ブレスレット オプション>
選択>
<入力タイプ = "送信" 値 = "選択" />
フォーム>