[PHP-users 31654] Re: header関数について
goungoun
gounx2 @ gmail.com
2007年 3月 9日 (金) 15:35:51 JST
こんにちは。
# スクリプトは適当にかいてるので、もし間違えていたらすいません。
On Fri, 9 Mar 2007 14:30:10 +0900
"Minoru.Harada" <system @ acekoeki.co.jp> wrote:
> もう一度プログラムを見直してみましたが、文字やスペースを出力し
> ている箇所はないようです。
> エラー表示されている44行目はheader関数のところです。
>
> 具体的に「何が出力されているのか」の確認するとはどのように行えばいいのでしょ
> うか?
↓基本はこれらの違いが分かることかな。
test1.php
------------------------------------------------------
<?php
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------
test2.php
------------------------------------------------------
<?php
echo "headerのまえに何か出力";
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------
test3.php
------------------------------------------------------
<?php
echo "headerのまえに何か出力";
exit();
header("Location: http://hogehoge/hogehoge.html");
?>
------------------------------------------------------
でもって、includeが絡んでくるとどうなるか
↓これを用意しておいて
test4.php
--------------------------------------
<?php
?>
phpスクリプトの後に何か(=空白など含む)出力
--------------------------------------
↓インクルードしてどうなるかとか、
test5.php
--------------------------------------
<?php
require_once("test4.php");
header("Location: http://hogehoge/hogehoge.html");
?>
--------------------------------------
で、headerの前にexitしてみるとどうなるかとか
test6.php
--------------------------------------
<?php
require_once("test4.php");
exit();
header("Location: http://hogehoge/hogehoge.html");
?>
--------------------------------------
もちろんWebブラウザ上でだけ見ても
空白は目に見えませんから、htmlソースレベルで確認するとか
Webサーバ経由ではなく、コマンドラインからphp動かして
確認するとかでしょうか。
はまるのは、incudeするphpファイルの末が
--------------------------------------
<?php
コードがずらずら・・・
?>
--------------------------------------
と「?>」の後に空行があるケース
echoとかしていないので、自分では出力している意識は
ない。けれども、phpは「<?php 〜 ?>」までをスクリプト
として実行して、それ以外の部分は*そのまま出力*することを
忘れないで。
--
goungoun <gounx2 @ gmail.com>
http://goungoun.dip.jp/app/
PHP-users メーリングリストの案内