![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
phpを使って、WEBを作っています。だいぶPHPを使えるようになってきて、今が一番楽しいときです。
実は以前から引っかかっていて、解決できないことがありますのでお助けください。
if文などで、条件を満たしたときに別のページに移動したいのですが、その移動のさせ方に下のようなソースを記入しています。
if($row==1){
header("location:********.php");
}
でも、どうもあまり良い方法ではないような気がしています。
(※*****はユーザー名やファイル名です。)
下のようなエラーが表示されました。
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/htdocs/******/public_html/******.php:17)
他のページにジャンプするような関数は何かないのでしょうか。
どなたか詳しい方宜しくご指導お願いいたします。
No.2ベストアンサー
- 回答日時:
そのエラーなんですが、
header("Location:xxxxx.hpp");
よりも先に、出力があるので出ています。
print とか、var_dumpとかしてませんか?
また、headerよりも前にrequire or includeしているファイルの
?>の後ろにスペースしていませんか?
これも出力とみなされて、エラーが出ます。
これ以外に処理をかませて自動で飛ばす場合、
javascriptとかで飛ばす方法を使うのが一般的ではないでしょうか?
ありがとうございます。
require もechoもどちらもあります^^。
JavaScriptを使うのですね。勉強になりました。
No.4
- 回答日時:
多少強引であるかもしれないですが、php.iniの設定で、output_bufferingを
output_buffering = On
と変更したらどうでしょうか?
ほかの回答者のように、ob_start()を使うのも手ですが。
No.3
- 回答日時:
se-nabeさんがおっしゃっている通り
header()の前に何らかの出力がされているとこのエラーがでます。
ただ、どうしてもリダイレクトの前に表示したい場合もあります。
この場合はob_start()を使ってやると出力の制御ができます。
セッションやクッキーなどを利用する場合も出力より先にしてやる必要がありますがこれを使えば出力があったあとでも利用することができます。
ありがとうございました。
テストのために、途中に確認用にprint文を2箇所ほどいれていましたが、それを削除しましたら上手く動作しました。
require文もあったので、ためしにと思い下の様にしてみました。
ob_start("require");
そして、
header("location:*****.php");
ob_end_flush();
でも、print文をとりましたら、特に何もしなくてもジャンプしましたので、ob_start()は消しました。
ob_start()の使い方は、よく分からないのですが、もし使うとすれば
上のような使い方で正しかったのでしょうか?
とても勉強になるアドバイスありがとうございました。
No.1
- 回答日時:
PHPはサーバ側がユーザへ送るhtml(とか)を(ユーザに判らないように「サーバ側で」)変化させるための仕掛け っていう認識は有る?
ユーザ側に送られてから何かやりたいならjavascriptか件のlocation(htmlでもできる従来の方法)になるね。
ユーザの入力(主にsubmit)があってからやってもいいというのなら読み出す物をそもそも変化させれば済むけど質問文だけではやりたいことが掴めないのでなんとも言えない・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP ページング データベース 1 2022/06/16 10:30
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PHP php my adminより取り出したデータ表示 2 2022/06/15 11:56
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPの変わった閉じタグの必要性と意味を教えてください。 1 2022/08/28 15:15
- PHP グローバルスコープはありますか? 1 2022/08/08 19:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
GDで画像表示
-
ob_end_clean と ob_clean の違...
-
ImageStringで日本語表示させたい
-
PHPにおける時間計算、時間足し...
-
PHPでBBSを作りたいのですが・...
-
phpにcssを適応させたい...
-
PHPでダブルバッファリング(画...
-
while文の表示
-
[php初心者]サイトを見てデータ...
-
別ファイルの変数を呼び出した...
-
mb_send_mailを実行するとエラ...
-
PHPファイルの中身が見られるこ...
-
$_SERVER と $_ENV の違い
-
お名前comのPHPとmysqlの接...
-
複数ファイルを連続でダウンロード
-
ボタンのクリック数を合計保存...
-
これからのPHP開発ではPDOを選...
-
URLの中の~の記号の意味は?
-
VB6にてメールを送信する方法
-
AccessのDoCmd.SendObjectについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPにおける時間計算、時間足し...
-
phpexcelにてsubmitボタンを押...
-
ob_end_clean と ob_clean の違...
-
imgタグでのphpの呼び出しについて
-
TCPDFについて
-
リダイレクト元のURLの取得方法...
-
smarty foreach 半角スペース
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
phpにcssを適応させたい...
-
image関数でMS Pゴシックを使い...
-
PHPで表示したテーブル内容をCS...
-
バイナリファイルをブラウザに...
-
PHP/phpMyAdmin/データベースな...
-
PHP4 メモリ使用量について
-
GDで生成したはずの画像が文字...
-
phpでmysqlから画像パスを出力する
-
PHPが出力するHTMLを表示するに...
-
論理演算 NAND に関しての質問
おすすめ情報