PHP マニュアル
前のページ |  | 次のページ

# session_start

(PHP 4, PHP 5)

session_start -- セッションデータを初期化する

## 説明

bool session_start ( void )

session_start() は、セッションを作成します。 (もしくは、リクエスト上でGET,POSTまたはクッキーにより渡されたセッションIDセッショ ンに基づき現在のセッションを復帰します)

名前付きのセッションを使用したい場合、 session_start()の前に session_name()をコールする必要があります。

この関数は常に `TRUE` を返します。

> 注意: クッキーに基づくセッションを使用している場合、ブラウザに何か出力 を行う前にsession_start()をコールする必要があ ります。

例 1. セッションの例: `page1.php`
`<?php // page1.php session_start(); echo 'Welcome to page #1'; $_SESSION['favcolor'] = 'green'; $_SESSION['animal'] = 'cat'; $_SESSION['time'] = time(); // cookieによるセッションが受け入れられていれば動作します echo '<br /><a href="page2.php">page 2</a>'; // あるいは必要ならセッションIDを付加します echo '<br /><a href="page2.php?' . SID . '">page 2</a>'; ?>`

`page1.php`を表示した後なら、 `page2.php`はセッション上の情報を含んでいるはずです。 session referenceを読むと、 セッションIDの伝達に関する情報が得られます。 例えば、`SID`とは何かといったことです。

例 2. A session example: `page2.php`
`<?php // page2.php session_start(); echo 'Welcome to page #2<br />'; echo $_SESSION['favcolor']; // green echo $_SESSION['animal']; // cat echo date('Y m d H:i:s', $_SESSION['time']); // page1.phpでやったように、ここでSIDを使うことができます。 echo '<br /><a href="page1.php">page 1</a>'; ?>`

セッションの名前を変える場合には、 session_start()をコールする前に session_name()をコールしなければなりません。

session_start()は、 trans-sidが有効の場合にURL書換え用の内部出力ハ ンドラを登録します。ユーザが、ob_start()と共に ob_gzhandlerまたは類似のものを使用している場合、 出力ハンドラの順番は正しく出力を行うために重要です。例えば、 セッション開始時にユーザはob_gzhandlerを登録す る必要があります。

> 注意: ob_gzhandlerよりも zlib.output_compressionの使用が推奨されていま す。

> 注意: PHP 4.3.3では、セッションが既に開始されている状態で session_start()をコールすると `E_NOTICE`レベルのエラーを発生させます。 またその場合二度目のセッションスタートは単に無視されます。

$_SESSION, session.auto_start, and session_id() も参照してください。

前のページ | ホーム | 次のページ
session_set_save_handler | 上に戻る | session_unregister