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() も参照してください。