【PHP?】header("location : ・・・")が作動しない
PHPに関して質問させていただきます。
--------------------------------------------
<html>
<head>
<title></title>
</head>
<body>
<?php
if($_POST['pay'] == credit) {
header("Location : creditinfo.php");
} else {
print("ただいま制作中です\n");
}
?>
</body>
</html>
--------------------------------------------
というコーディングを行い、
・前ページでのpostで[credit]というデータが返ってくると別ページへ移動
・それ以外のデータが帰ってきたら「ただいま制作中です」というテキストを表示
ということを行いたいのですが、
それを実行すると
Warning: Cannot modify header information - headers already sent by (output started at C:・・・.php:6) in C:・・・.php on line 8
というエラーが返ってきてしまい、そのページから先に進めなくなってしまいます。
様々なページで解決方法を探りましたが、解決できずにいます。
ちなみに、elseの方の「ただいま制作中です」は表示できます。
どなたかご教授をお願いします。
No.1ベストアンサー
- 回答日時:
Locationヘッダの前に<html>~~等の出力があるからでは?
<?php
if($_POST['pay'] == "credit") {
header("Location : creditinfo.php");
} else {
$msg = "ただいま制作中です";
}
?>
<html>
<head>
<title><title>
</head>
<body>
<?php
echo $msg;
?>
</body>
</html>
と、してみてください。
お礼が遅れてしまい申し訳ございませんでしたが、早い回答ありがとうございました。
buraruさんのソースを使い、また
header("Location : creditinfo.php");
の部分を
header("Location:creditinfo.php");
と、コロンの前後の半角スペースを消すことで正常に作動できました。
これで作業が進みます。本当にありがとうございました。
No.3
- 回答日時:
すでに回答がでていますが、httpの基本を理解していないためにおこっている現象です。
http://ja.wikipedia.org/wiki/Http
httpはhtmlの文字列を表示する(送信する?)前にサーバーとユーザーのブラウザの間で
さまざまなデータのやり取りをしています。
ご質問のヘッダロケーションもhtml本文より前にやりとりしなくてはいけないルールです。
今回文中にヘッダを表記したことで、httpの基本ルールがやぶられており
サーバーからエラーが出力されているわけです。
対処方法はすでに出ているようなheaderの出力箇所をhtml本文出力前におくか、
(できればheader出力後exitしてしまうのが効率的)
場合によってはmetaタグで飛ばすなども検討してみてはどうでしょうか?
<meta http-equiv="refresh" content="0;URL=creditinfo.php">
回答ありがとうございます&お礼が遅くなってしまい申し訳ございませんでした。
PHP自体は、1年前に使用していたので、そのときにこのheaderの分岐も使っていたのですが、
完全にルール等の使い方を忘れてしまっていたので焦っていましたが、
それに関する指摘や説明など詳しく書いていただいて、本当に助かります。
今後は気をつけてプログラミングの腕を磨いていきます。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php エラー
-
文字化けについて
-
日付と年月日を選択するコード...
-
XAMPP1.7.1上でPHPを実行すると...
-
POP3を使ったメール受信で...
-
PHPのif文でその処理を途中で抜...
-
「@$変数」の「@の意味は?」
-
PHPで新しいウインドウで開く命...
-
FTPコマンドでディレクトリごと...
-
VBSの「MsgBox」について
-
トランザクションが原因?DBに...
-
「クラウドにアップロード」」...
-
レジストリにあるアプリケーシ...
-
is_fileでファイルが存在してい...
-
xamppでformによるデータの送信...
-
glob関数で日本語文字が取得で...
-
Struts2 ファイルアップロード
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
「クラス関数」「メンバ関数」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
日付と年月日を選択するコード...
-
複数の文字列をファイルに書き...
-
前後の全角スペースを削除する...
-
XAMPP1.7.1上でPHPを実行すると...
-
文字化けについて
-
PHP(smarty)についての質問(文...
-
ファイルをアップロードすると...
-
php エラー
-
条件によってmeta http-equiv="...
-
ウィンドウA⇒ウィンドウB⇒ウィ...
-
html内のphpスクリプトについて
-
Wordpressを利用したソート機能...
-
エラー Warning: Cannot modif...
-
phpの画面表示が真っ白です
-
<form action="bbs.php" method...
-
mb_convert_variablesで変換出...
-
phpでfopen()やfputs()が使えない
-
XMLパースエラー回避方法
-
header関数について
-
PEARのXML/Unserializer.phpが...
おすすめ情報