前回の記事では、「PHP で Cookie を作成、読み取り、削除するにはどうすればよいですか?」についてお届けしました。 」では、PHP で Cookie を作成、読み取り、削除する方法が詳しく紹介されています。この記事では、PHP でのセッションの設定、取得、およびクリアについて説明します。みんなが助けてくれるといいですね!
前の記事では、クライアントがユーザー データを保存するために使用する cookie
について紹介しました。この記事では、その使用方法を見てみましょう。 PHP では非常に重要です session
、セッションはサーバー側のメカニズムであり、情報の保存にも使用されます。クライアントに保存される Cookie と比較して、ユーザーはサーバー側に保存されたセッションを無効にすることはできません。同じクライアントクライアントがサーバーと対話するたびに、毎回すべての Cookie 値を返す必要はありません。ID を返すだけで済みます。この ID はサーバーが初めてアクセスされたときに生成され、一意です。
次に、セッションとは何か、セッションの設定、取得、削除の方法を見てみましょう
セッションとは
セッションとは中国語でセッションを意味し、ユーザー関連情報を保存するために使用されます。これは、ユーザー名、個人設定などの Cookie に似ていますが、Cookie とは異なります。 cookie 興味深いのは、cookie はクライアントのコンピュータにデータを保存し、ユーザーが無効にできるのに対し、セッションはデータをサーバー システムに保存することです。 Web ページはステートレス プログラム接続であり、ユーザーのステータスを記録できないため、セッションを通じてユーザーの関連情報を記録することが特に重要です。
セッションが開かれると、PHP はランダムに sessionID
を作成します。各ユーザーのセッション ID は一意です。このセッション ID は、クライアントとサーバーの両方で、クライアントで Cookie が使用される指定されたディレクトリに保存されます。サーバーでは、指定されたセッション ディレクトリに呼び出されたテキストの形式で保存されます。
Cookie と比較すると、セッションには多くの利点があります:
セッション データはクライアントとサーバーの間でやり取りされないため、通常、セッションはより安全です。セッションは保存できるため、 Cookie よりもはるかに多くの情報が含まれるため、ユーザーは Cookie を無効にすることができますが、セッションを正常に動作させる方法があります。
セッションとは何かを理解した後、セッションを開く方法を見てみましょう。
Opensession
Cookie とは異なり、Cookie は直接作成できますが、使用する前にセッションを開始する必要があります。その目的は、PHP のコア プログラムがセッション関連の組み込み環境をメモリにプリロードできるようにすることです。
PHP では、セッションを開くという目的は session_start()
関数によって実現できます。関数 session_start() の構文形式は次のとおりです:
session_start ([array $options = array()])
注意すべき点 はい:
$options
はオプションの関数および連想配列であり、この配列のキーに以下を含める必要はありません。 session. プレフィックス。
例は次のとおりです:
<?php session_start([ 'cookie_lifetime' => 60*60*24, // 设置 cookie 的有效时间为 1 天 ]); echo 'Session ID 为:'.$_COOKIE['PHPSESSID']; ?>
出力結果:
注意してください: call session_start ()
この関数は一意のセッション ID を生成し、ブラウザの Cookie に保存します。デフォルト名は「PHPSESSID」です。同時に、「sess_」とセッション ID で構成されるセッション ファイルがローカル ディレクトリに生成され、セッション内のデータが保存されます。出力結果は次のようになります。上記の例を通じて、セッションを開く方法を学習しました。次に、セッションを設定および取得する方法を見てみましょう
session
上記において、セッション開始後、セッション変数を使用したい場合は、セッション内でデータの設定と取得を行う必要があります。
$_SESSION 配列を通じて。 $_SESSION を使用する前に、まず session_start()
$_SESSION
は連想配列であり、通常の連想配列のキーと値のペアと同じ意味を持ちます。 Session を設定するための構文形式は次のとおりです。
$_SESSION[名称] = 值;
<?php session_start(); $str = '好好学习'; $arr = ['Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; foreach ($_SESSION as $key => $value) { if(is_array($value)){ echo $key.':'; print_r($value); }else{ echo $key.' = '.$value.'<br>'; } } ?>
出力結果:
実行後これらの変数または配列を $_SESSION に保存し、サーバー側の「sess_」とセッション ID で名前を付けたファイルにも保存します。このファイルの場所は、php を変更することで変更できます。 ini 設定ファイルを使用するか、session.save_path 設定を使用します。
セッションのオープン、設定、取得方法はすでに学習しましたので、次にセッションを削除する方法を見てみましょう。
単一セッションの削除删除单个session元素需要通过unset()
函数,该函数可以释放指定的变量,相当于直接注销掉数组中的元素,他的语法格式如下:
unset(mixed $var [, mixed $...])
其中需要注意的是:
$var
为要释放的变量,unset()
函数可以接收多个参数,参数之间使用,
分隔。
实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; unset($_SESSION['title']); print_r($_SESSION); ?>
输出结果:
如此便通过unset()函数完成了删除session单个元素了。
删除session多个元素
如果想要一次性删除多个 Session 元素,即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION
来实现
实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; $_SESSION = array(); print_r($_SESSION); ?>
通过将一个空的数组赋值给 $_SESSION 输出结果:
还有一种方法就是通过session_unset() 函数来释放session中的所有元素,实例如下:
<?php session_start(); echo '<pre class="brush:php;toolbar:false">'; $str = '好好学习'; $arr = ['删除 Session','$_SESSION']; $_SESSION['study'] = $str; $_SESSION['study1'] = '天天向上'; $_SESSION['title'] = $arr; echo '定义一个 Session,如下所示:<br>'; print_r($_SESSION); echo '删除 Session 中名为 title 的元素:<br>'; session_unset(); print_r($_SESSION); ?>
输出结果与上述实例的结果相同,由此我们便通过两种方法可以删除session多个元素了。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上がPHPでセッションを設定、取得、削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。