• 締切済み

携帯でのheader Locationについて

携帯を対象としたHPをphpで作成しています。 ファイルから$urlを取得して、 header("Location: $url"); にて、ジャンプさせるのですが、iモードだとうまく$urlのHPにジャンプするのですが、Vodafoneではうまくジャンプできず、エラー画面が表示されてしまいます。 auではまだ試していないので分かりませんが、機種や会社によって上記のようなLocationは使えないのでしょうか? なぜ、うまくジャンプしないのか分かりません。 なんか良い方法・理由を教えてください。よろしくお願い致します。

みんなの回答

  • kuny2005
  • ベストアンサー率67% (21/31)
回答No.3

パラメータ付でのヘッダーロケーションはできたと思いますよ。 (そういうシステム作った経験があります。) 以下のスクリプトでもダメですか? ----- a.php ----- <?php header("Location: http://hogehoge.com/b.php?a=1"); ?> ----- ----- b.php ----- <html> <body> a=<?=$_GET['a']?> </body> </html> -----

回答No.2

そうですか、ではリダイレクト先を直接リクエストさせた時は表示されますか? vodafoneはその機種によってHTMLなどの規約の解釈が厳密な部分があって、「このページは表示できません」のようなエラーが出る事はよくあります。が、リダイレクトそのものが原因だった事は経験ないですね。リダイレクトに伴う変数の受け渡しなどが原因の場合がほとんどでした。vodafoneの場合セッションIDがうまく渡せない場合もあります。 念のためですが、vodafoneのgatewayから送られる情報などをリダイレクト先で利用していたりしますか?例えば位置情報や端末IDなど。リダイレクトされた場合、これらの情報は取得できません、御存知かと思いますが、念のためお知らせしておきます。

HAYATE-chi
質問者

補足

ご回答ありがとうございます。 urlはhttp://xxx.com/axxx.php?id=xxx という形式となっています。 $url先を別の方法でリンク <a href="http://xxx.com/xxx.php?id=xxx">リンク</a>問う形では、正常にリンク先を表示させることができます。 色々と試してみると、どうやら、 header("Location: $url"); を使用することによって、$urlの$idがうまく受け渡されていないようです。 vodafoneの機種にもよるのでしょうか? vodafoneでもうまく表示させる良い方法は何かないでしょうか?

回答No.1

$urlはhttp:から始まる絶対URLになっていますか? 元々リダイレクトの仕様としては絶対URLでなければならないと記憶していますが、ほとんどのブラウザ(IEやドコモなど)は相対URLでもリダイレクトをしてくれます。ですが、vodafoneはこのあたり厳密な仕様になっているようですよ。

HAYATE-chi
質問者

お礼

ご回答ありがとうございます。 $urlは絶対パスです。したがって、URLの記述方式や、URL先が間違っているわけではないと思います。 他の色々なスクリプトを試してみましたが、 header("Location: $url");の記述に問題があるような気がしてなりません; 原因がわからないので困っています;

関連するQ&A