ホームページ  >  記事  >  バックエンド開発  >  PHP は Cookie を使用してユーザーとのセッションを実装します。phpcookie はセッションを実装します_PHP チュートリアル

PHP は Cookie を使用してユーザーとのセッションを実装します。phpcookie はセッションを実装します_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:09:33880ブラウズ

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 $_SERVER["HTTP_COOKIE"]
echo getenv("HTTP_COOKIE");
echo $_COOKIE["野菜"];

2. PHPを使用してCookieを設定します

PHP スクリプトで Cookie を設定するには 2 つの方法があります。まず、header() 関数を使用して SetCookie ヘッダーを設定します。 Header() 関数は、サーバー応答のヘッダー部分に含まれる文字列を予期します。ヘッダーは自動的に送信されるため、Jehol 出力がブラウザーに送信される前に header() を呼び出す必要があります。


コードをコピーします コードは次のとおりです:
head("Set Cookie:vegetable=artichoke;expires=Tue,07-Mar-06 14:39:58 GMT;path=/;domain=yourmain. com");
難しいことではありませんが、Cookie を設定するこの方法では、ヘッダー文字列を構築する関数を記述する必要があります。この例のように日付と URL エンコーディングの名前と値のペアをフォーマットすることは特に難しい作業ではありませんが、PHP にはこれを行うための関数 setcookie() が用意されているため、繰り返しの作業となります。
Setcookie() 関数はその名前が示すとおりの動作を行い、Set-Cookie ヘッダーを出力します。したがって、他のコンテンツがブラウザに送信される前に呼び出す必要があります。この関数は、Cookie 名、Cookie 値、UNIX タイムスタンプ形式の有効期限、パス、ドメイン、および最初のパラメータに加えて、Cookie が安全な接続を介してのみ送信される場合は 1 に設定される整数を受け入れます。この関数はオプションです。


コードをコピーします コードは次のとおりです:
setcookie ( "野菜" , "アーティチョーク" , 時間 ()+3600, "/" , ".yourdomain.com" , 0);

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. セッションを開始します

コードをコピーします コードは次のとおりです:
session_start();
echo "

セッション ID は " .session_id () ;
" ?>


5. セッション変数を使用する

すべての PHP ドキュメント内の一意のセッション識別子にアクセスできることは、セッション機能の始まりにすぎません。セッションが開始されると、必要な数の変数をスーパーグローバル変数 $_SESSION に保存し、セッション対応のページからそれらの変数にアクセスできます。

次のプログラムは、スーパーグローバル変数 $_SESSION に 2 つの変数を追加します。

コードをコピーします コードは次のとおりです:
session_start();
$_SESSION [ "product1" ] = "ソニック ドライバー" ;
$_SESSION [ "product2" ] = "HAL 2000" ;
echo "商品は登録されました。" ?>

上記のプログラムの魔法は、ユーザーが新しいページに移動するまで実現されません。次のプログラムは、スーパーグローバル変数 $_SESSION に格納されている変数にアクセスする単一の PHP スクリプトを作成します。


コードをコピーします コードは次のとおりです: session_start();
echo "選択した製品は次のとおりです:" ;
エコー「
    」 echo "
  • " . $_SESSION [ "
  • " echo "
  • " . $_SESSION [ "
  • " エコー「
」 ?>

次のプログラム リストは、ユーザーが複数の製品を選択できるフォームを作成します。セッション変数を使用して、基本的なショッピング カートを作成できます。
arraysession.php:


コードをコピーします

コードは次のとおりです:
session_start();
?>

<頭>
セッションを使用して配列を保存する


製品選択ページ


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
トランスポーター ブレスレット

<入力タイプ = "送信" 値 = "選択" />



コンテンツ ページに移動




 
session1.php:
复制代码代码如下:
/*
  ※2011年1月19日作成
  *
  * この生成されたファイルのテンプレートを変更するには、
にアクセスしてください   * ウィンドウ - 設定 - PHPeclipse - PHP - コード テンプレート
  */
  session_start();
?>

<頭>
セッション変数へのアクセス


コンテンツ ページ


if ( isset ( $_SESSION [ "製品" ])){
    echo "あなたのカート:
    " ;
        foreach ( unserialize ( $_SESSION [ "products" ]) as $p ){
           エコー「
  1. 」 。 $p 。 "
  2. " ;
        }
        エコー「
」 ;
}
?>

製品選択ページに戻る




6.在查询字符串中传递会话ID

7.销毁会话と重置变量

8. 一つの带に注目册用户の環境で会话

を使用する

ここで説明されている大家向けの php プログラムの設計が役立つことを望みます。

http://www.bkjia.com/PHPjc/945701.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/945701.html技術記事 php で Cookie を使用してユーザー ミーティングを実行する方法、phpcookie でユーザー セッションを実行する方法については、この例で説明しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。