PHPで条件分岐により別ページにリダイレクトさせたいと思ってます。
<?php
…
if ($hoge) {
header("Location: hoge.html");
exit;
}
…
で、これで$hogeに値を引き継がせてXPのIEでみると、真っ白なページにリダイレクトしてしまします。
ただ、hoge.htmlに遷移はしているらしく、ソースの表示をすると正しいファイルが読み込まれていますし、更新をすると表示されます。
全然意味がわかりません。ちなみにNNだとちゃんと表示されているみたいです。
ということはブラウザの問題なのでしょうか?
確実にリダイレクトさせる方法はないのでしょうか?
#混乱するかも知れませんが、いろいろいじってみていたら、上記PHPのファイルを書き換えるとちゃんと動くこともあるようです…??
No.5ベストアンサー
- 回答日時:
locationに関しては絶対URLということで他の方の回答通りだと思います。
PHPに関してですが、サーバーに組み込まないで外部プログラムとして立ち上げることが可能なのでCGIとしても利用出来ます。
ただし、サーバーに組み込む方が多いので、CGIとして利用出来るということはあまり知られていないかもしれません。
(でも、日本PHPユーザー会のサイトにはトップページにCGIとして使えると書いてあるんですけどね・・・)
参考URL:http://www.php.gr.jp/
ご回答ありがとうございました。
> PHPに関してですが、サーバーに組み込まないで外部プログラムとして立ち上げることが可能なのでCGIとしても利用出来ます。
知らなかったです!
でもすごく意味なさそうな雰囲気ですね。
コマンドラインでPHPを実行するのは結構使えますが、CGIとしては要らないですよね…
No.6
- 回答日時:
> リダイレクト先のページはEUCなのですが、ブラウザの設定をS-JISにすると画面が真っ白
思いあたることが一点だけあるのを忘れてました。
ブラウザのバージョンによるのかも分かりませんが、以下のことを確認してください。
<TITLE>~</TITLE>が日本語で書かれていて、かつ
<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=EUC-JP">
よりも前にありませんか?
その場合、文字コードの認識がうまくいかない場合があります。
META行を先に記述すればうまくいくようです。
現にPHPの日本語マニュアルがそのようになっており、真っ白になるページがいくつか存在します。
因みに、ブラウザはIE5.01です。
#マニュアルを修正して欲しい...
ご回答、ありがとうございます。
お礼が遅くなり、申し訳ございませんでした。
最近解決することができましたのでご報告申し上げます。
やはり文字コードの問題だったらしく、
(1)ファイルがEUCで書かれている
(2)METAでEUC-JPを指定している
(3)HTMLの頭に文字コードが判別しやすい漢字を埋め込んでおく
ということを全て行っていても、何故かブラウザがShift_JISとして表示してしまっていたのが原因でした。
#でも結局どのような環境でなるのかは不明でしたが…
そこでリダイレクト先のページのヘッダーを明示的にEUC-JPと出力するように変更したところ、文字化けは解消されました(ようです)。
ご協力ありがとうございました。
色々勉強になりました。
またどうぞよろしくお願いいたします。
No.4
- 回答日時:
LocationのURI指定は絶対URIのみです。
相対ではNN6.0などからして動かないように思います。
他の部分の問題かどうかは判断材料が少ないのでよくわかりません。
少しづつ切り分けていくしか無いように思います。
(半角スペース、改行文字等がひとつ余分に混じってもアウトです)
#似ていますがPHPはCGIではありません。
#サーバが外部(CGI)プログラムを呼ぶのがCGIです。
#PHPはサーバ内処理ですので、CGIが呼ばれません。
#PHPがCGIとなると、ASPもCGIになってしまいますよね。
#本題と関係ありませんけれどm(_ _)m
ご回答ありがとうございました。
お礼が遅れて申し訳ございませんでした。
絶対指定は気をつけます。
PHPマニュアルでも注意書きでそのように書いてありました。
原因は恐らく文字コードらしいことが判明しました。
(取りあえずご報告です)
> #似ていますがPHPはCGIではありません。
色々調べましたがやっぱりそのようですね。
大変勉強になりました。
まとめると、実行したときにプロセスが立ち上がるかどうかがCGIかどうか、という理解でよろしいでしょうか?
No.3
- 回答日時:
何も表示されないのだから文字コードの問題でもないでしょうし...
強制的にリフレッシュさせるように変更するとどうなりますか?
$id = time();
header("Location: hoge.html?id=$id");
>ヘッダの出力ですが、質問の中のPHPでheaderの記述の前に何ら出力を行ってません。
念のため確認しますが、空行もありませんよね。<-詳細はマニュアル参照。
ご回答ありがとうございました。
お礼が遅れて申し訳ございませんでした。
空行もありません。不思議です。。
> 何も表示されないのだから文字コードの問題でもないでしょうし..
実は原因はこれかな?とか思い始めてます。
リダイレクト先のページはEUCなのですが、ブラウザの設定をS-JISにすると画面が真っ白になりました。
まだ完全に確認は取れてないし、どうしたら回避できるのかはわからないですが、この線で検討していきたいと思います。
#それにしてもヘッダーで文字コードを強制的に指定することってできるのだろうか…?
No.2
- 回答日時:
リダイレクト先のHTML出力の前の段階、
言い換えればヘッダの出力に問題があるのではないでしょうか。
#役に立たないレスですみません。
#ところで、PHPってCGIじゃないような(^^;
ご回答ありがとうございます。
ヘッダの出力ですが、質問の中のPHPでheaderの記述の前に何ら出力を行ってません。requre、includeもありません。
パラメータを$_GETで取っている記述があるだけです。
なぜでしょう…?
#ところで、PHPってCGIじゃないような(^^;
あれ…?
確かにサーバー側でプロセスは新たに立ち上がらないですが、サーバーサイドで実行結果を返すのでPHPもCGIではないですか?
これも質問しないといけないかな?(笑)
補足ですが、この状態になるのを確認したブラウザはIE6です(XPだからあたりまえか…)。NN4.7ではきちんとページが表示されることも確認しています。
No.1
- 回答日時:
hoge.htmlを絶対URIにしてみてはどうでしょう?
また、値を引き継がせたいのであれば、htmlではなくてhoge.php?hoge=$hogeにしないといけないと思うのですが…。
ご回答ありがとうございます。
絶対URIにしましたが変化ありませんでした。
> また、値を引き継がせたいのであれば、htmlではなくてhoge.php?hoge=$hogeにしないといけないと思うのですが…。
いや、値を引き継がせたいわけではないんです。
値$hogeをフラグにして静的なHTML(hoge.html)にリダイレクトさせたいだけなんです…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルダウンロードで、DBCS...
-
プログラミングについての質問...
-
WEBアプリケーションからフォル...
-
perlを難読化、暗号化させたい
-
CGIからsystem("display test.p...
-
CGIから移動したページでのリン...
-
ラジオボタンが両方とも選択で...
-
wordの数式について 定積分を書...
-
チェックボックスの返す値
-
FORMのselectの選択肢を最初か...
-
チェックボックスとセレクトボ...
-
Error: No Recipient というエ...
-
WEBページを強制的に横画面で見...
-
CGIでチェックボックスを使...
-
ローカルテストサーバーと本番...
-
Excelのセルに HTML を貼りつけ...
-
ログファイルの編集についてお...
-
CGIプログラムに詳しい方よろし...
-
「value」に2つの値をセットす...
-
cgiで表示したフレームに結果を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
cgiからsendmailを送信で文字化け
-
プログラミングについての質問...
-
perlを難読化、暗号化させたい
-
PHPのlocationについて
-
content-dispositionによるファ...
-
CGI実行できない。ソースが表示...
-
検索結果が文字化けします。
-
ウェブサイトが文字化けします
-
SSI対応じゃないCGIをSSI対応に…
-
IE以外のブラウザでキャッシュ...
-
CGIから移動したページでのリン...
-
画面の改行ピッチを変えたいの...
-
firefoxの文字化け(エンコーデ...
-
Locationの文字化け
-
Perl言語のオンライン文法チェ...
-
CGI.pmのstart_htmlで思い通り...
-
予約システムの文字化け
-
ショッピングカートのクッキー...
-
こんにちは。
-
ファイルダウンロードで、DBCS...
おすすめ情報