TECH I.S.

PHP セッション


セッションは、複数のページで使用される情報を(変数に)格納する方法です。

Cookieとは異なり、情報はユーザーのコンピューターには保存されません。


PHPセッションとは何ですか?

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

セッション変数は、複数のページで使用されるユーザー情報 (ユーザー名、好きな色など) を保存することで、この問題を解決します。デフォルトでは、セッション変数はユーザーがブラウザーを閉じるまで存続します。

セッション変数は、1人のユーザーに関する情報を保持し、1つのアプリケーションのすべてのページで使用できます。


ヒント:永続的なストレージが必要な場合は、データをデータベースに保存すると良いでしょう。





PHP セッションを開始する

セッションはsession_start()関数で開始されます。

セッション変数は、PHPグローバル変数 $_SESSIONで設定されます。

それでは、「demo_session1.php」という新しいページを作成しましょう。このページでは、新しい PHPセッションを開始し、いくつかのセッション変数を設定します。

<?php // Start the session session_start(); ?> <!DOCTYPE html> <html> <body> <?php // Set session variables $_SESSION["favcolor"] = "green"; $_SESSION["favanimal"] = "cat"; echo "Session variables are set."; ?> </body> </html>

注:session_start()関数は、ドキュメントの最初にある必要があります。 HTMLタグの前に。


PHPセッション変数の値を取得する

次に、「demo_session2.php」という別のページを作成します。このページから、最初のページ ("demo_session1.php")で設定したセッション情報にアクセスします。

セッション変数は、新しいページごとに個別に渡されるのではなく、各ページの最初に開いたセッションから取得されることに注意してください (session_start())。

また、すべてのセッション変数の値がグローバル$_SESSION変数に格納されていることにも注意してください。

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // Echo session variables that were set on previous page echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>"; echo "Favorite animal is " . $_SESSION["favanimal"] . "."; ?> </body> </html>

ユーザーセッションのすべてのセッション変数値を表示する別の方法は、次のコードを実行することです。

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php print_r($_SESSION); ?> </body> </html>

それはどのように機能しますか?どうやってそれが私だとわかるの?ほとんどのセッションでは、765487cf34ert8dede5a562e4f3a7e12のようなユーザー キーがユーザーのコンピューターに設定されます。次に、セッションが別のページで開かれると、コンピューターをスキャンしてユーザー キーを探します。一致する場合はそのセッションにアクセスし、一致しない場合は新しいセッションを開始します。


PHPセッション変数の変更

セッション変数を変更するには、上書きするだけです。:

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // to change a session variable, just overwrite it $_SESSION["favcolor"] = "yellow"; print_r($_SESSION); ?> </body> </html>


PHPセッションを破棄する

すべてのグローバルセッション変数を削除してセッションを破棄するには、次を使用します。session_unset()session_destroy():

<?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php // remove all session variables session_unset(); // destroy the session session_destroy(); ?> </body> </html>



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細