[PHP-users 5672] Re: 変数の受渡とif 文について

Keisuke Hashimoto php-users@php.gr.jp
Mon, 25 Feb 2002 00:54:22 +0900


こんにちは、はしもとです。

On Mon, 25 Feb 2002 00:25:48 +0900
"ariari" <ariari@ma2.justnet.ne.jp> wrote:
> 三村さん 提案のheader〜を使ったら下記のエラーが出ました
> --------------test.php--------------
> <html>
> <body>
> <?php
> header("location: http://192.168.1.80/~aaa/test2.html");
> ?>
> </body>
> </html>
> ----------エラーメッセージ-----------
> Warning: Cannot add header information - headers already sent by (output
> started at /home/aaa/public_html/test.php:3) in
> /home/aaa/public_html/test.php on line 4
> 
> 何でしょう??初心者には解りません(すみません)

三村さんから教えていただいたheader関数を使うのに、一度は
御自身でマニュアルを参照されましたでしょうか?
http://www.php.net/manual/ja/function.header.php
ここに、
> 覚えておいて頂きたいのは、header() 関数は、通常のHTMLタグ
> またはPHPからの出力にかかわらず、すべての実際の出力の前に
> コールする必要があることです。
と書かれています。

なので、上記スクリプトではheaderでlocationが送出される前に
<html>タグ等が出力されてしまっていて、エラーになっている
のです。
エラーメッセージにも、
> headers already sent by ...
のように、「ヘッダがすでに送信されている」といったことが
書かれています。

HTTPヘッダについてご自分で調べられることをお勧めします。

# CGI未経験でPHPをはじめた場合だと、HTTPヘッダというものに
# 触れる機会が少ないかも知れませんね。

初心者ならばなおさらですが、教えてもらったことについて自分で
調べずにそのまま使うのでは、御自身のレベルアップにはつながり
ませんよ(^_^;。

> print(echo)文で書いてテストしたいのですが、具体的に何と書けばいいのか解り
> ません
> 簡単な例を教えていただけたら幸いです。

[PHP-users 5663]にてAriAriさん自身が
> > HTMLなら指定のページにジャンプさせるには、location.href="aaa.html " と書けば
> > いいのでしょうが
と書かれていますが、この「aaa.html」のところにご希望のジャンプ
先を指定すればいいだけです。
直接ジャンプ先を書くのでも、ジャンプ先を一旦変数に入れてから
指定するのでも、どちらでも構いません。

# JavaScriptのlocation.hrefの使い方はご存知なんですよね???

#================================================================#
  橋本 敬介  - Keisuke Hashimoto -
    Plain Text mailto:ksk@be.to
#================================================================#