こんな風に、postにデータが入って無い時は弾こうとしたとき
[php]
<?php
$str = $_POST["hantei"];
if($str == ""){
header(‘location: login.php’);
exit();
}
?>
[/php]
ローカルでCannot modify header informationになりました。
これはheader()より先に何かが出力されている事が原因のエラーみたいなんだけど、
変数への代入は関係ないみたいだし、謎な改行も空白行無いし、BOMも付いてないしで
改行消してみたり、ファイルの保存方法を見なおしたりでは上記ソースのエラーを消せませんでした。
で、実際にエラーを消せた方法
1)php.iniのoutput_bufferingをonにする。
MAMPのphp.iniは
[text]
/Applications/MAMP/bin/php/php[バージョン]/conf/php.ini[/text]
にあります。
見てみると
output_buffering = Off になっていたので
output_buffering = On に変更しました。
その後、MAMPを再起動して確認するとlocationで指定したページへ飛んでくれました。やった!
2)ob_start();を使う。
output_buffering = Offのままob_start();を挿入してもいけました。やった!
[php]
<?php
ob_start();
$str = $_POST["hantei"];
if($str == ""){
header(‘location: login.php’);
exit();
}
?>
[/php]
使い方あってるのかな。