- 締切済み
PHPのheader()について
OS:freebsd4.8 PHP:php-4.3.2 apache2 を使用しております。 ドキュメントルートに <HTML> <HEAD> <TITLE>検索エンジン</TITLE> </HEAD> <BODY> <CENTER><H1> 検索エンジン </H1></CENTER> <FORM METHOD= post ACTION = search.php> <TABLE BORDER = 4 WIDTH = 250 ALIGN = CENTER> <TR BGCOLOR = "#CCCCCC"> <TH>検索キーワード</TH> <TD><INPUT TYPE= text NAME= keywd size = 20 /></TD> </TR> <TR> <TH>エンジン</TH> <TD> <SELECT NAME = ENG> <OPTION VALUE = "yahoo">Yahoo!</OPTION> <OPTION VALUE = "google">google</OPTION> <OPTION VALUE = "goo">goo</OPTION> </SELECT> </TD> </TR> <TR> <TD COLSPAN ="2"><CENTER><INPUT TYPE="submit" value="検索" /><CENTER></td> </TR> </TABLE> </FORM> </BODY> </HTML> というtest.htmlをおいてます。 phpスクリプトとして <?php $stringkey = urlencode($keywd); switch($ENG){ case "yahoo": $url = "http://www.yahoo.co.jp/bin/search?p="; break; case "goo": $url = "http://www.goo.ne.jp/default.asp?MT="; break; case "yahoo": $url = "http://www.google.co.jp/search?q="; break; } header("Location: ".$url.$stringkey); header("HTTP/1.1"); ?> search.phpにパラメータを渡していますが 白いページしか表れません。 header()関数の記述が悪いのでしょうか? apache2の設定でしょうか? ちなみに2ファイルともドキュメントルートに配置してます。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- R34_666
- ベストアンサー率25% (17/66)
header関数の前に何か表示する事は出来ないはずです。 #1の方が言うようにechoで確認する前にheaderの部分をコメントにしないとならないと思います。 と言うか、 header("HTTP/1.1"); header("Location: ".$url.$stringkey); のように逆にするだけって気も・・・
- selenity
- ベストアンサー率41% (324/772)
たぶんリダイレクトされていないからでしょう。 header("Location: ".$url.$stringkey); の前の行で echo $url . $stringkey; と表示させて、本来リダイレクトさせるはずの正しい URLが表示されるかどうかを確認してみましょう。 もし、何も表示ないのであればregister_globalsの 設定値の問題なので、 switch($ENG){ を switch($_POST['ENG']){ に、 urlencode($keywd); を urlencode($_POST['keywd']); に置き換えて試してみてください。
補足
ご回答ありがとうございます。 白画面のままですね。 白画面のソースコードをのせます。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD> <BODY></BODY></HTML> よろしくお願いします。