PHPセッション
セッションは、クライアントがウェブサイト (サーバー) と通信するためのより安全な方法です。 セッションが開かれると、そのセッションは Web サイトのどのページでも使用 (維持) できるため、訪問者と Web サイトの間に「対話」メカニズムが確立されます。
セッション変數(shù)には単一ユーザーの情報(bào)が保存され、アプリケーション內(nèi)のすべてのページで使用できます。
PHP セッション変數(shù)
コンピューター上でアプリケーションを操作するときは、アプリケーションを開いて変更を加えて閉じます。それは會(huì)話によく似ています。 コンピューターはあなたが誰(shuí)であるかを知っています。アプリを開いたり閉じたりするタイミングを認(rèn)識(shí)します。 しかし、インターネットでは問題が発生します。HTTP アドレスは狀態(tài)を維持できないため、Web サーバーはユーザーが誰(shuí)で何をしているのかを知りません。
PHP セッションは、後で使用できるようにユーザー情報(bào) (ユーザー名、購(gòu)入したアイテムなど) をサーバーに保存することで、この問題を解決します。 ただし、セッション情報(bào)は一時(shí)的なものであり、ユーザーがサイトを離れると削除されます。情報(bào)を永続的に保存する必要がある場(chǎng)合は、データをデータベースに保存できます。
一般的なオンライン ショッピング カートは、セッションの典型的なアプリケーションです。 製品を予約する場(chǎng)合、選択した製品をショッピング カートに入れます。これにより、実際に製品のセッションが開きます。 選択した製品が注文されると、対応する情報(bào)がデータベースに書き込まれます。注文がない場(chǎng)合は、ユーザーがブラウザを閉じるかログアウトするとセッションが終了し、選択した製品は無(wú)効になります。
session は、ユーザーを識(shí)別するためにセッションを開いた訪問者ごとに一意のセッション ID を作成します。 セッション ID は、ユーザーのコンピュータ上の Cookie に保存されるか、URL を通じて渡される場(chǎng)合があります。 対応する特定のセッション値はサーバー側(cè)に保存されます。これが Cookie との主な違いでもあり、セキュリティは比較的高いです。
PHP セッションを開始する
PHP セッションにユーザー情報(bào)を保存する前に、まずセッションを開始する必要があります。
session_start() 関數(shù)を使用してセッションを開くと、システムがセッション ID を割り當(dāng)てます
注: session_start() 関數(shù)は <html> タグの前に配置する必要があります:
<?php session_start( );&gt;
ユーザー情報(bào)の保存を開始できます。
セッション変數(shù)の保存
<?php session_start(); // 存儲(chǔ) session 數(shù)據(jù) $_SESSION['views']=1; ?> <html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <?php // 檢索 session 數(shù)據(jù) echo "瀏覽量:". $_SESSION['views']; ?> </body> </html>Output:
Views: 1
以下の例では、単純なページビューカウンターを作成します。 isset() 関數(shù)は、「views」変數(shù)が設(shè)定されているかどうかを検出します。 「views」変數(shù)が設(shè)定されている場(chǎng)合、カウンターをインクリメントします。 「views」が存在しない場(chǎng)合は、「views」変數(shù)を作成して 1 に設(shè)定します:
<?php session_start(); if(isset($_SESSION['views'])) { $_SESSION['views']=$_SESSION['views']+1; } else { $_SESSION['views']=1; } echo "瀏覽量:". $_SESSION['views']; ?>
Destroy Session
セッション データを削除したい場(chǎng)合は、unset() または session_destroy() を使用できます。関數(shù)。
unset() 関數(shù)は、指定されたセッション変數(shù)を解放するために使用されます:
<?php session_start(); if(isset($_SESSION['views'])) { unset($_SESSION['views']); } ?>
session_destroy() 関數(shù)を呼び出してセッションを完全に破棄することもできます:
<?php session_destroy(); ?>
注: session_destroy() はセッションをリセットし、セッションが失われます保存されているすべてのセッション データ。
session_id
Session は、各ユーザーのセッションを追跡するために使用され、ユーザーを區(qū)別するためにサーバーによって生成された SessionID によって識(shí)別されます。セッションはサーバーのメモリに保存され、SessionID はサーバーのメモリとクライアントの Cookie に保存されます。 このようにして、ユーザーがリクエストを行うと、サーバーはユーザーの Cookie に記録されているセッション ID とサーバーのメモリ內(nèi)のセッション ID を比較し、ユーザーに対応する操作用のセッションを見つけます。したがって、クライアントが Cookie を無(wú)効にすると、セッションは使用できなくなります。