php 「Cannot send session cache limiter」という警告がでた
2013/05/24
セッションスタートすると「Cannot send session cache limiter – headers already sent」という警告がでた。
session_start()は、ブラウザに何かを出力する前に記述する必要がある。
雑記
画像認証のライブラリを落として設置する際に「session_start()」の記述が必要だった。
<html>
<head>
~中略~
</head>
<body>
~中略~
<?php;
session_start();
?>
~画像認証関連の記述~
~中略~
</body>
</html>
<head>
~中略~
</head>
<body>
~中略~
<?php;
session_start();
?>
~画像認証関連の記述~
~中略~
</body>
</html>
上記のように画像認証の直前に「session_start();」を記載していた。すると下記のような「PHP Warning」がエラーログに出力されていた。
PHP Warning: session_start(): Cannot send session cache limiter – headers already sent (output started at xxxxxx on line xx
調べるとブラウザに何かを表示してから「session_start();」しているのが原因らしい。ということで下記のように編集
<?php;
session_start();
?>
<html>
<head>
~中略~
</head>
<body>
~中略~
~画像認証関連の記述~
~中略~
</body>
</html>
session_start();
?>
<html>
<head>
~中略~
</head>
<body>
~中略~
~画像認証関連の記述~
~中略~
</body>
</html>