ホームページ > バックエンド開発 > PHPチュートリアル > PHPセッションセッション処理関数例の詳細説明

PHPセッションセッション処理関数例の詳細説明

墨辰丷
リリース: 2023-03-29 10:50:02
オリジナル
1359 人が閲覧しました

この記事では主にPHPセッションセッション処理関数の関連情報を紹介しますので、必要な方は参考にしてください

PHPセッション変数

アプリケーションを実行するとき、それを開いていくつかの変更を加えます。閉じてください。それはセッションによく似ています。コンピューターはあなたが誰であるかを知っています。ユーザーがアプリケーションをいつ開始し、いつ終了するかを認識します。しかし、インターネットには問題があります。サーバーはユーザーが誰で何をしているのかを知りません。これは、HTTP アドレスが状態を維持しないためです。

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

セッションは、訪問者ごとに一意の ID (UID) を作成し、この UID に基づいて変数を保存することで機能します。 UID は Cookie に保存されるか、URL を通じて渡されます。

1. セッションを開始します

情報をセッションに保存する前に、まずセッションを開く必要があります。 PHP には、セッションを開始または継続するための session_start() 関数が用意されています。定義:

1 bool session_start( void )

は次のように呼び出されます:

<?php session_start();?>
 <html>
 <body></body>
 </html>
ログイン後にコピー

注:

(1) session_start() 関数は タグの前に配置する必要があります。 、つまり、この関数は出力の前に呼び出す必要があります。プログラムを作成するときに、誤って余分なスペースを入力したり、Enter キーを押したりすると、エラーが報告されることがよくあります。これには特別な注意を払う必要があります。 (騙されました)

(2)セッションの作成が成功したかどうかに関わらず、session_start()関数はTRUEを返すため、例外処理は動作しません。

(3) 設定命令 session.auto_start を有効にして、この関数を実行する必要がないようにすることもできますが、この場合、各 PHP ページが実行されるときにセッションが開始または継続されます。

2. セッションの保存または読み取り

セッション変数を保存および読み取りする正しい方法は、php の S ESSION 変数を使用することです。 SESSION変数。 _SESSION は PHP によって提供されるグローバル パラメータであり、セッションの保存と読み取りに特に使用されます。 (連想配列のキー名は通常の変数の命名規則と一致していることに注意してください)

セッションを保存する際、直接割り当てることができます。

$_SESSION['season'] = 'Autumn';

上記は、キー名が「season」で値が「autumn」のセッション要素を設定します。読み取るときは、通常の配列要素を呼び出すのと同じです。

次の 2 つのコードは、セッション要素を保存および読み取る方法を示しています。

これは session1.php ファイルです:

 <?php
 /**
  * Created by PhpStorm.
  * User: yuxiu
  * Date: //
  * Time: :
  */
 if(isset($_POST[&#39;submit&#39;])){
   session_start();                //开始建立一个会话
   $_SESSION[&#39;season&#39;] = $_POST[&#39;season&#39;];    //存储会话数据
   header("Location: session.php");      //应特别注意header()里的格式问题
 }
 ?>
 <b>存储会话</b>
 <hr/>
 选择需要设置的数据:
 <form name="form" method="post" action="" id="form" >
   <select name="season" id="season_select" >
     <option value="春天">春天</option>
     <option value="夏天">夏天</option>
     <option value="秋天">秋天</option>
     <option value="冬天">冬天</option>
   </select>
   <br/>
   <br/>
   <br/>
  <input type="submit" name="submit" value="submit"/>
 </form>
ログイン後にコピー

これは session2.php ファイルです:

 <?php
 /**
  * Created by PhpStorm.
  * User: yuxiu
  * Date: //
  * Time: :
  */
 session_start();  //建立或者继续一个会话
 $season = $_SESSION[&#39;season&#39;];    //读取会话数据
 echo "<b>读取会话</b><br/><br/>";
 switch ($season) {
   case &#39;春天&#39;;
     echo &#39;现在是绿意盎然的春天!&#39;;
     break;
   case &#39;夏天&#39;;
     echo &#39;现在是热情四溢的夏天!&#39;;
     break;
   case &#39;秋天&#39;;
     echo &#39;现在是丰收果实的秋天!&#39;;
     break;
   case &#39;冬天&#39;;
     echo &#39;现在是白雪皑皑的冬天!&#39;;
     break;
   default ;
     echo &#39;对不起,会话中没有数据 或者 不存在该对话 !&#39;;
 }
 ?>
ログイン後にコピー

session1.php では、最初に session_start() を使用してセッションを作成し、次に季節データは配列割り当てを使用して保存され、最後に header() 関数を使用して先頭に直接ジャンプします。 session2.php ファイルでは、セッションを継続し、セッション配列を使用してセッション情報を呼び出すために session_start() 関数も必要です。

3. セッションを破棄する

セッションが使用されなくなったら、手動で破棄する必要がありますが、PHP にはセッションを自動的に破棄する機能がありますが、これによりプログラムの効率が低下します。 unset() 関数または session_destroy() 関数を使用できます。

<?php
 unset($_SESSION[&#39;season&#39;]);
?>
ログイン後にコピー

または:

<?php
 session_destroy();   //注意,使用这个函数将重置session数组,即失去所有的已经储存的session数据
?>
ログイン後にコピー

要約: 以上がこの記事の全内容です、皆さんの学習に役立つことを願っています。

関連推奨事項:

PHPは国内IPをランダムに出力する機能を実装

php+ajaxメソッドで登録のリアルタイム検証機能を実装

PHP+Ajaxはリアルタイム認証コードの時刻認証機能

以上がPHPセッションセッション処理関数例の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート