PHPでセッションを使う際に発生する警告(Warning)の解決方法

セッションに関する警告があり、解決したので記述しておく。セッションを使う場合、通常以下のコードを書いてセッションを開始する。

セッション開始 – PHPファイル

<?php
session_start();
?>

この記述をコードの初めに書かないと以下のような警告(Warning)が出るようだ。

Warning: session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /index.php:1) in /index.php on line 2

実際に$_SESSION[‘id’]などでセッションを使う部分は上記のセッション開始部分とは離して body 内などに記述して良い。以下に記述例を記載しておく。

セッションの記述例 – PHPファイル

<?php
session_start();
?>
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<h1><?php $_SESSION['name']; ?>さんのページ</h1>
</body>
・
・
・

以上の対策をとっても警告が出る場合がある。私の場合は、エディターでコーディングする際に先頭にBOMが挿入されていたために警告が出ていた。この場合、BOMを挿入しない設定にすれば解決する。

DreamWeaver CS5.5の場合、修正→ページプロパティ→タイトル/エンコーディングの順で選択し、「Unicode署名を含める(BOM)」のチェックをはずして、「適用」→「OK」をクリックして保存するとBOMを外すことができる。

その他のエディター(terapadなど)では、文字コード設定で「UTF8-N」を使用すると良い。

コメントを残す

メールアドレスが公開されることはありません。

This blog is kept spam free by WP-SpamFree.

コメントフィード

トラックバックURL: http://monopocket.jp/blog/php/649/trackback/