0Pricing
PHP Academy · レッスン

セッションの開始と利用

session_startでセッションを開始し、_SESSIONにデータを保存します

「セッションの開始と利用」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。

PHPセッションとは

HTTPはステートレスです。PHPのセッションは、データをサーバー側に保存し、セッションID Cookieで参照することで、複数のリクエストにわたってデータを保持します。

session_start()

出力を行う前にsession_start()を呼び出してください。既存のセッションを再開するか、新しいセッションを作成します。

<?php
session_start();
// Must be called before any echo/HTML output

$_SESSIONへのデータ保存

$_SESSIONスーパーグローバルは通常の配列です。キーに値を代入すると、現在のセッションにデータを保存できます。

<?php
session_start();
$_SESSION["user_id"]  = 42;
$_SESSION["username"] = "alice";
$_SESSION["cart"]     = [];

セッションデータの読み取り

session_start()を呼び出した後の次のリクエストから、セッションデータにアクセスできます。

<?php
session_start();
if (isset($_SESSION["user_id"])) {
    echo "Welcome back, ".$_SESSION["username"];
} else {
    echo "Please log in";
}

セッションキーの削除

unset()を使用すると、個々のセッションキーを削除できます。

<?php
session_start();
unset($_SESSION["cart"]);

セッションの破棄

ユーザーを完全にログアウトさせるには、すべてのセッションデータを解除し、セッションを破棄して、Cookieを期限切れにします。

<?php
session_start();
$_SESSION = [];
if (ini_get("session.use_cookies")) {
    $p = session_get_cookie_params();
    setcookie(session_name(), "", time()-3600,
        $p["path"], $p["domain"], $p["secure"], $p["httponly"]);
}
session_destroy();

セッションストレージ

PHPはデフォルトで、セッションデータをサーバーの一時ディレクトリにファイルとして保存します。カスタムハンドラーを使うと、Redis、Memcached、データベースなどにセッションを保存できます。

セッションID

session_id()でセッションIDを取得または設定できます。デフォルトでは、IDはPHPSESSIDという名前のCookieとしてクライアントに送信されます。

セッションの有効期間

session.gc_maxlifetimeでガベージコレクションを制御します。これは、データがクリーンアップの対象になるまでの非アクティブ時間を秒単位で指定します。

フラッシュメッセージ

セッションは、リダイレクト後に一度だけ表示するフラッシュメッセージに適しています。

<?php
// Set:
$_SESSION["flash"] = "Profile updated!";
header("Location: /profile");
// Read and remove:
$msg = $_SESSION["flash"] ?? null;
unset($_SESSION["flash"]);
echo $msg;

セッションとCookie

セッションはデータをサーバー側に保存し、クライアントにはIDだけを送信します。Cookieはデータをクライアント側に保存します。機密データにはセッションのほうが安全です。

まとめ

セッションを使用するすべてのページの先頭でsession_start()を呼び出してください。読み書きには$_SESSIONを使用します。ログアウト時にはセッションを破棄してください。

クイックチェック

session_start()はどこで呼び出す必要がありますか。

よくある質問

「セッションの開始と利用」レッスンは無料ですか?

はい。「セッションの開始と利用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。

「セッションの開始と利用」で何を学びますか?

session_startでセッションを開始し、_SESSIONにデータを保存します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

PHP Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「セッションの開始と利用」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このPHP Academyレッスンでコードを書いて実行できますか?

はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. セッションの開始と利用
  2. セキュアなセッションのベストプラクティス
  3. Cookieの設定と読み取り
  4. Cookieのセキュリティ:HttpOnlyとSecureフラグ
← PHP Academyに戻る