PHPでセッションを設定、取得、削除するにはどうすればよいですか?

WBOY
リリース: 2023-04-10 18:30:02
オリジナル
6087 人が閲覧しました

前回の記事では、「PHP で Cookie を作成、読み取り、削除するにはどうすればよいですか?」についてお届けしました。 」では、PHP で Cookie を作成、読み取り、削除する方法が詳しく紹介されています。この記事では、PHP でのセッションの設定、取得、およびクリアについて説明します。みんなが助けてくれるといいですね!

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([
        &#39;cookie_lifetime&#39; => 60*60*24,  // 设置 cookie 的有效时间为 1 天
    ]);
    echo &#39;Session ID 为:&#39;.$_COOKIE[&#39;PHPSESSID&#39;];
?>
ログイン後にコピー

出力結果:

PHPでセッションを設定、取得、削除するにはどうすればよいですか?

注意してください: call session_start () この関数は一意のセッション ID を生成し、ブラウザの Cookie に保存します。デフォルト名は「PHPSESSID」です。同時に、「sess_」とセッション ID で構成されるセッション ファイルがローカル ディレクトリに生成され、セッション内のデータが保存されます。出力結果は次のようになります。上記の例を通じて、セッションを開く方法を学習しました。次に、セッションを設定および取得する方法を見てみましょう

PHPでセッションを設定、取得、削除するにはどうすればよいですか?

設定と取得

session

上記において、セッション開始後、セッション変数を使用したい場合は、セッション内でデータの設定と取得を行う必要があります。 $_SESSION 配列を通じて。 $_SESSION を使用する前に、まず session_start()

関数を試してセッションを開く必要があります。

$_SESSION は連想配列であり、通常の連想配列のキーと値のペアと同じ意味を持ちます。 Session を設定するための構文形式は次のとおりです。

$_SESSION[名称] = 值;
ログイン後にコピー

例は次のとおりです。

<?php
    session_start();
    $str = &#39;好好学习&#39;;
    $arr = [&#39;Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    foreach ($_SESSION as $key => $value) {
        if(is_array($value)){
            echo $key.&#39;:&#39;;
            print_r($value);
        }else{
            echo $key.&#39; = &#39;.$value.&#39;<br>&#39;;
        }
    }
?>
ログイン後にコピー
出力結果:

実行後これらの変数または配列を $_SESSION に保存し、サーバー側の「sess_」とセッション ID で名前を付けたファイルにも保存します。このファイルの場所は、php を変更することで変更できます。 ini 設定ファイルを使用するか、session.save_path 設定を使用します。

セッションのオープン、設定、取得方法はすでに学習しましたので、次にセッションを削除する方法を見てみましょう。 PHPでセッションを設定、取得、削除するにはどうすればよいですか?

単一セッションの削除

删除单个session元素需要通过unset()函数,该函数可以释放指定的变量,相当于直接注销掉数组中的元素,他的语法格式如下:

unset(mixed $var [, mixed $...])
ログイン後にコピー

其中需要注意的是:

$var 为要释放的变量,unset() 函数可以接收多个参数,参数之间使用,分隔。

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    unset($_SESSION[&#39;title&#39;]);
    print_r($_SESSION);
?>
ログイン後にコピー

输出结果:

PHPでセッションを設定、取得、削除するにはどうすればよいですか?

如此便通过unset()函数完成了删除session单个元素了。

删除session多个元素

如果想要一次性删除多个 Session 元素,即一次注销所有的会话变量,可以通过将一个空的数组赋值给 $_SESSION 来实现

实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    $_SESSION = array();
    print_r($_SESSION);
?>
ログイン後にコピー

通过将一个空的数组赋值给 $_SESSION 输出结果:

PHPでセッションを設定、取得、削除するにはどうすればよいですか?

还有一种方法就是通过session_unset() 函数来释放session中的所有元素,实例如下:

<?php
    session_start();
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    $str = &#39;好好学习&#39;;
    $arr = [&#39;删除 Session&#39;,&#39;$_SESSION&#39;];
    $_SESSION[&#39;study&#39;]  = $str;
    $_SESSION[&#39;study1&#39;]   = &#39;天天向上&#39;;
    $_SESSION[&#39;title&#39;] = $arr;
    echo &#39;定义一个 Session,如下所示:<br>&#39;;
    print_r($_SESSION);
    echo &#39;删除 Session 中名为 title 的元素:<br>&#39;;
    session_unset();
    print_r($_SESSION);
?>
ログイン後にコピー

输出结果与上述实例的结果相同,由此我们便通过两种方法可以删除session多个元素了。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上がPHPでセッションを設定、取得、削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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