• ベストアンサー

header("Location: ")でページ移動しない;

<?php $image_no = $_GET['image_no']; if($image_no == ""){ $image_no = 0; } if($image_no == 10){ header("Location: http://www.test/i/"); } ?> <img src="../img/test<?php echo $image_no;?>.jpg"> <?php echo $image_no;?> <br/> <a href="test.php?image_no=<?php echo $image_no + 1;?>">次へ</a> こんなカンジで、『次へ』のリンクをクリックすると、画像が切り替わるものを書いたんですが、$image_no == 10になったら、別のページへジャンプしたいんですが、うまくいきません。 10回目でエラーになってしまいます。 どうやったらうまく違うページへジャンプできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.4

そのエラーは、「header の前に 何か出力されちゃってるよエラー」ですので、 何か 出力されていないかご確認ください。 #3さん ご指摘の改行もそうですし、半角スペースなど 目に見えないものでもNGです。 ob_start()を使って回避する方法もありますが、これは根本的な解決ではありません。

maz1105
質問者

お礼

ありがとうございます。 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> の下に書いていれば、エラーになって当然ですね!できました。本当にありがとうございます。

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

文字コードはUTF? BOMを吐いていたり、いらない改行などはいっているのでは? 当然ながらhttpのヘッダーは文字を送る前に設定する必要があります。

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

さっきのアルバムの方ですね。 回答しようかと思ってたら質問が消えてて、吹きました。 > header("Location: http://www.test/i/"); 文法上は問題ないと思います。 どんなエラーが出たのですか?

maz1105
質問者

補足

いかにもさっきのアルバムの人です。 自力でなんとかやったらできました。 せっかく回答していただこうとしたのに、もうしわけありません! 今回の質問は、そのアルバムの続きです Warning: Cannot modify header information - headers already sent by (output started at /home/admin/test.php:10) in /home/admin/test.php on line 29 エラー文をそのまま書きました。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 if($image_no == 10){ header("Location: http://www.test/i/"); exit; } exitを入れてみてください。

maz1105
質問者

補足

ありがとうございます。 さっそくやってみましたが、上の補足同様、エラーがでて、結果は変わりませんでした

関連するQ&A