- ベストアンサー
vodafoneの古い携帯(P3P4など)でheader('Location: ')が使えない
携帯端末用のWebサイトをPHP4にて構築しています。 リダイレクトをさせようとheader( 'Location: http://www.test/test?id=100'); などと使用すると、引数がリダイレクト先で受け取れなくて困っています。 サーブレットの getRequestDispatcher のように、リクエストを丸投げできるフォワードのような処理ができる 方法はないでしょうか? (最近の3G端末などなら、引数のパラメータが取得できるのですが。。。) どなたかご存知の方、よろしくご教授ください。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (4)
- wakame0729
- ベストアンサー率32% (245/765)
- wakame0729
- ベストアンサー率32% (245/765)
- wakame0729
- ベストアンサー率32% (245/765)
- wakame0729
- ベストアンサー率32% (245/765)
関連するQ&A
- header('Location: http://www.exampl
header('Location: http://www.example.com/'); PHPによる上記リダイレクト処理を、ブラウザ側で拒否できるような機能は存在するのでしょうか? そもそもこのリダイレクト処理というのはサーバサイドで動いているものなのでしょうか? 仕組みがよくわかりません。 たとえばDBにデータを登録後、リダイレクトでメール送信処理ページへ飛ばし、ユーザに登録内容をメールで送る、ということをしても問題ないのでしょうか? とりあえず画面遷移を拒否される可能性があるかないかだけでも教えてください。
- ベストアンサー
- PHP
- header()関数によるリダイレクトについて
下記のようなスクリプトにおいて、header()関数で、リダイレクトしているのですが、 ちゃんとリダイレクトできません。ちなみに、header()関数の前には HTML文も無い、PHPのみのスクリプトです。 どうすれば、リダイレクトできるか教えていただきたいのですが。 【profile_regist.php】 <?php if($_POST['ID_HANDLENAME']!==NULL) $handlename = $_POST['ID_HANDLENAME']; else header("Location: ~.html"); 中略 ?>
- ベストアンサー
- PHP
- 環境をかえたら header(Location:)に不具合が?
ローカル環境からWEBサーバに作ったPHPファイルを移動させたのですが、 header(Location:)がうまく動かなくなってしまいました。 アドレスがおかしいのかと思って いくつか試してみたんですが ファイルによってうまく行くのと行かないのがあるようです。 傾向としては $chkに5が入っていたら test.phpに移動する。 if($_SESSION['chk'] != '5'){ header('Location: ./test.php'); exit; } はうまく動くのですが ifでいくつか処理を行ったあとに if(isset($_POST('submit')){ いくつかの処理 header('Location: ./login.php'); } とするとうまく動かないという状態です。 どのようなケースが考えられるでしょうか アドバイスよろしくお願いします。
- ベストアンサー
- PHP
- header("location~")をPOSTで渡す方法を探しています
phpでの質問です。 header("location~")をPOSTで渡す方法を探しています。 携帯サイトなのでJavascriptは使えません。 shift-jisのサイトからutf-8のサイトへ渡します。 (1)307でリダイレクト header('Location: '.$url, true, 307); =>POSTの文字コードを変換できないのでダメでした。 (2)POSTで送信してからリダイレクト http://questionbox.jp.msn.com/qa3554188.html?StatusCheck=ON =>うまくいきません。やり方が悪いのかもしれません…。 送り元のサイトの文字コードをutf-8にしてしまえば解決するのですが、携帯サイトなのでshift-jisにするしかありません。 (最近ではほとんどの機種がutf-8対応になっていますが、社長の機種が対応していなくて…) よろしくお願いします。
- ベストアンサー
- PHP
- header関数について
header関数について独自関数を絡ませたいのですがいい方法が 思いつかず悩んでおります。 パソコン用、携帯用サイトがあり携帯サイトのみheaderで飛ばした URLの最後にセッションを付加したいと思っております。 // 分岐により携帯であればセッションを変数作成しています。 $sis_id = '?' . session_name() . '=' . session_id(); // パソコンであれば$sis_idはnullなのでこの状態でもなにも付加されません。 header('Location: hoge.php' . $sis_id); ここまでは問題ないのですが以下のようにURLに他のパラメーターを 持っている場合どうすればいいでしょうか? header('Location: hoge.php?id=5' . $sis_id); これだと$sis_idの頭は?ではなく&が必要になりますよね。 仮に$sis_idの?を外して以下のように書き換えるという手も考えた のですがパソコンの場合hoge.php?id=5&のようなURLになってしまいます。 header('Location: hoge.php?id=5&' . $sis_id); if文で分岐させそれぞれの飛び先をべた書き指定すれば済む話 なのですがソースを簡略化させたく独自関数などで自動化できない ものかと思っております。 詳しい方がおりましたら是非アドバイスなど宜しくお願い致します。
- ベストアンサー
- PHP
- header("Location: mailto:
header("Location: mailto: でメーラを開く時、本文を改行させたらエラーになるのですが、回避する方法はありませんか? <?php // 送信ボタンが押されたら if (isset($_POST["submit"])) { $wk_adrs = "web@test.sakura.ne.jp"; $wk_subject = "サブジェクト"; // これはOK $wk_body = "ボディー"; // これはNG $wk_body = "1行目ボディー".PHP_EOL."2行目ボディー"; // これもG $wk_body = <<< EOM 1行目ボディー 2行目ボディー EOM; // 画面遷移させる $wk_Location="Location: mailto:".$wk_adrs."?subject=".$wk_subject."&body=".$wk_body; header($wk_Location); exit; } ?> 下記のメッセージが出る Warning: Header may not contain more than a single header, new line detected in
- ベストアンサー
- PHP
- locationでジャンプした場合GETパラメータは認識されるの?(携帯編)
(携帯サイトの場合です) I.まず下記のようにlocationヘッダでジャンプさせます。 header("Location: http://hoge.com/test.php?id=ok"); II.ジャンプ先で $id = $_GET["ok"]; とした場合GETパラメータは正常に取得できるのでしょうか。 お分かりになる方よろしくお願い致します。
- 締切済み
- PHP
- headerについて
<?php header("Location:x.php?y=1"); exit; ?> はOKですが <?php $_GET['xx']; header("Location:x.php?y=1"); exit; ?> はだめです エラーメッセージは Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/z.php:2) in /var/www/html/z.php on line 3 $_GET['xx']や$_POST['xx']などをheaderの前に置けないと非常に困ります (上はテスト用PHPです) どうしたらいいでしょうか?
- ベストアンサー
- PHP
- Locationでアンカーに飛ばしたい
下記のPHPを作り、 name_idがなかったらname.php?a1=user_idに飛ばす、 name_idがあったらuser.php?a2=name_idに飛ばしています。 ここまでは問題ありません。 今回、 name.php?a1=user_id#name user.php?a2=name_id#name と、それぞれのページの#nameのアンカーが付いているところに飛ばしたいと考えています。 しかしながら、単純に下記を header("Location: name.php?a1=$type#name:"); のようにアンカーを追加したたでけでは思う行に飛ばすことができません。 Location で他のページのアンカーに飛ばすにはどうすば良いでしょうか? 宜しくお願い致します。 <?php $type = $_GET['user_id']; $type2 = $_GET['name_id']; if (empty($type2)) { header("HTTP/1.1 301 Moved Permanently"); header("Location: name.php?a1=$type:"); exit(); } else { header("HTTP/1.1 301 Moved Permanently"); header("Location: user.php?a2=$type2:"); exit(); }; ?>
- ベストアンサー
- PHP
- header(Location:~)で$_SESSION[" "]が保持されない。
自宅サーバー(apache2+php5+mysql5)のlocalhost環境で、 header(Lcation:~)の記述をすると、 セッションが保持されない現象が起きています。 本番環境のレンタルサーバーは、同じ記述で、 しっかりとセッションが保持されます。 この原因は、何でしょうか? php.iniの設定など、何か考えられることがあれば、 是非教えて下さい。 【やりたいこと】 ■a.php **************************************** <?php echo<<<EOD <form method="POST" action="./b.php"> <INPUT type="text" name="test"> <INPUT type="submit" name="Submit" value="確認画面へ"> </form> EOD; ?> ■b.php **************************************** <?php $_SESSION["test"]=$_POST["test"]; header("Location:./c.php"); ?> ■c.php **************************************** <?php echo $_SESSION["test"]; ?> 自宅サーバーだと、 a.phpで入れたデータが、c.phpで表示されません。 レンタルサーバーだと、 セッションが保持され、表示されます。
- ベストアンサー
- PHP
お礼
ご返答が遅くなりまして申し訳ございません。 なるほど。そういう仕様があったんですね。 私が知りたい情報は、まさにそれでした。 お手数をかけさせた上に、正確な解答をしていただき 恐縮の極みです。 とすると A.php $uid_A = $header['x-jphone-uid']; header( 'Location: http://www.test/B.php?uid_B=uid_A' ) ; B.php $uid= $_GET['uid_B']; というような処理になるのでしょうか? このように、UIDをGETに渡すと URLにUIDのパラメータが表示されてしまい 問題ないのでしょうか?(POSTでなくて平気?) またもや重ねての質問になりますが、 どうぞよろしくお願い致します。