PHPセッション

セッションは、クライアントがウェブサイト (サーバー) と通信するためのより安全な方法です。 セッションが開かれると、そのセッションは Web サイトのどのページでも使用 (維持) できるため、訪問者と Web サイトの間に「対話」メカニズムが確立されます。

セッション変数には単一ユーザーの情報が保存され、アプリケーション内のすべてのページで使用できます。

PHP セッション変数

コンピューター上でアプリケーションを操作するときは、アプリケーションを開いて変更を加えて閉じます。それは会話によく似ています。 コンピューターはあなたが誰であるかを知っています。アプリを開いたり閉じたりするタイミングを認識します。 しかし、インターネットでは問題が発生します。HTTP アドレスは状態を維持できないため、Web サーバーはユーザーが誰で何をしているのかを知りません。

PHP セッションは、後で使用できるようにユーザー情報 (ユーザー名、購入したアイテムなど) をサーバーに保存することで、この問題を解決します。 ただし、セッション情報は一時的なものであり、ユーザーがサイトを離れると削除されます。情報を永続的に保存する必要がある場合は、データをデータベースに保存できます。

一般的なオンライン ショッピング カートは、セッションの典型的なアプリケーションです。 製品を予約する場合、選択した製品をショッピング カートに入れます。これにより、実際に製品のセッションが開きます。 選択した製品が注文されると、対応する情報がデータベースに書き込まれます。注文がない場合は、ユーザーがブラウザを閉じるかログアウトするとセッションが終了し、選択した製品は無効になります。

session は、ユーザーを識別するためにセッションを開いた訪問者ごとに一意のセッション ID を作成します。 セッション ID は、ユーザーのコンピュータ上の Cookie に保存されるか、URL を通じて渡される場合があります。 対応する特定のセッション値はサーバー側に保存されます。これが Cookie との主な違いでもあり、セキュリティは比較的高いです。

PHP セッションを開始する

PHP セッションにユーザー情報を保存する前に、まずセッションを開始する必要があります。

session_start() 関数を使用してセッションを開くと、システムがセッション ID を割り当てます

注: session_start() 関数は <html> タグの前に配置する必要があります:

<?php session_start( );&gt;
ユーザー情報の保存を開始できます。



セッション変数の保存

セッション変数を保存および取得する正しい方法は、PHP $_SESSION 変数を使用することです:

<?php
  session_start();
  // 存储 session 数据
  $_SESSION['views']=1;
?>
        
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<?php
 // 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>
</body>
</html>

Output:

Views: 1

以下の例では、単純なページビューカウンターを作成します。 isset() 関数は、「views」変数が設定されているかどうかを検出します。 「views」変数が設定されている場合、カウンターをインクリメントします。 「views」が存在しない場合は、「views」変数を作成して 1 に設定します:

<?php
 session_start();
 if(isset($_SESSION['views']))
 {
   $_SESSION['views']=$_SESSION['views']+1;
 }
 else
 {
  $_SESSION['views']=1;
 }
  echo "浏览量:". $_SESSION['views'];
?>

Destroy Session

セッション データを削除したい場合は、unset() または session_destroy() を使用できます。関数。

unset() 関数は、指定されたセッション変数を解放するために使用されます:

<?php
session_start();
if(isset($_SESSION['views']))
{
unset($_SESSION['views']);
}
?>

session_destroy() 関数を呼び出してセッションを完全に破棄することもできます:

<?php
 session_destroy();
?>

注: session_destroy() はセッションをリセットし、セッションが失われます保存されているすべてのセッション データ。

session_id

Session は、各ユーザーのセッションを追跡するために使用され、ユーザーを区別するためにサーバーによって生成された SessionID によって識別されます。セッションはサーバーのメモリに保存され、SessionID はサーバーのメモリとクライアントの Cookie に保存されます。 このようにして、ユーザーがリクエストを行うと、サーバーはユーザーの Cookie に記録されているセッション ID とサーバーのメモリ内のセッション ID を比較し、ユーザーに対応する操作用のセッションを見つけます。したがって、クライアントが Cookie を無効にすると、セッションは使用できなくなります。


学び続ける
||
<?php session_start(); // 存储 session 数据 $_SESSION['views']=1; ?> <html> <head> <meta charset="utf-8"> <title>php中文网(php.cn)</title> </head> <body> <?php // 检索 session 数据 echo "浏览量:". $_SESSION['views']; ?> </body> </html>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜