C級プログラマーの日曜プログラミング

アクセスカウンタ

zoom RSS PHP Tips(2):ページ間の移動方法

<<   作成日時 : 2006/04/16 23:02   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0





PHP において、任意の HTTP ヘッダを送出するためには、header 関数を
使用します。注意点としては、header() 関数を呼び出す以前には、
いかなる標準出力への出力も存在してはならない
ということです。

<? // common.php
  :
  :
?>

// ↑最後に空行がある


というファイルを require する、

<?  // a.php
  require "common.php";
  header("... ");
?>


というプログラムは、正しく動作しません。header 関数が呼び出される前に common.php の
最後の空行が出力されているためです。

このような状況がある場合

Warning:  Cannot add header information - headers already sent by (output started at -:6) ...


という Warning が表示されます。
header 関数と同様に、HTTP ヘッダを送出するため、いかなる出力もその呼び出し前に存在してはいけない
関数としては、session_start(), setCookie() があります



註:この他にheader()関数以前にあると動作しなくなるものとして、print()、

<meta http-equiv ="Content-Type" content = "text/html;CHARSET=EUC-JP">文

があり、これらは使用できない。これが何を意味するかといえば、

(1)明示的に、エンコードできないので、日本語が化け易くなる。
(2)デバッグができない。特に、無料サイト等のリモートサーバ下で実行する場合、
 エラーや警告が一切出ないのでprint文が今の所必須。これが使えないと間違い
 箇所を探すのが致命的に困難になる。

そこで、PHP文に代って,JavaScriptでheader文を記述すると次のようになる。
 ・
 ・
// header( "Location: ./mframe.php");
?>
<script language="JavaScript">
  url = "mframe.php";
  location.href = url;
</script>

これで、meta文とprint文が使えるようになる。 目出度し、目出度し。




12345678910111213141516171819202122232425262728293031323334353637383940414243444546

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
PHP Tips(2):ページ間の移動方法 C級プログラマーの日曜プログラミング/BIGLOBEウェブリブログ
文字サイズ:       閉じる