PHPセッション
セッションは、複数のページで使用される情報を(変数に)格納する方法です。
クッキーとは異なり、情報はユーザーのコンピューターに保存されません。
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>