みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

スマートフォンで文字列が表示されません

当方、phpはほぼ初心者です。質問も初めてですが、よろしくお願いいたします。

携帯用に作ったphpのメールフォームのページで、スマートフォンを使用した際、最後に表示されるはずの「完了画面」が表示されません。「完了画面」が表示されずにPC用に作成したサイトのTOPページに飛んでしまいます。

完了画面の内容は、下記のような単純なものです。(※実際の文字列はhtmlで数行にわたり構成されています。)

print "文字列";


同様のページは、携帯電話の「docomo」用、「softbank」用、「willcom」用、(そして「Android」用、その他はPCサイトへ)と振り分けられており、携帯電話でページで見ると最後の完了画面は問題なく表示されます。

スマートフォンだけなぜ表示されないのか皆目見当がつかず、こちらに質問させていただきました。

php及び携帯サイト制作は、ほぼ初心者の為、質問内容に不慣れな点、不足の点がありましたら、併せてご教示ください。

投稿日時 - 2011-07-25 09:01:25

QNo.6897814

すぐに回答ほしいです

質問者が選んだベストアンサー

スマートフォンは、誤解を恐れずに言えば「ADSLや光の代りに、ケータイの回線を使ったパソコン」です。
ブラウザは「標準」以外のものでも使えますし、各種応答がケータイとは一致しないこともあるでしょう。

> その他はPCサイトへ

とのことなので、その「判定方法」に問題があって、スマートフォンではなく、PCだと判定されるのでしょう。

これ以上のことは質問文からだけでは判断できません。上の予想も間違っているかもしれません

投稿日時 - 2011-07-25 23:52:15

補足

下記にミスタイプありましたので、訂正します。

~~その後、メールフォームの記述が始まり、最後に「完了画面」のprintn記述が入ります~~

printn →訂正 print

です。

投稿日時 - 2011-07-26 13:51:07

お礼

早速のご回答ありがとうございます。
これは私が作ったプログラムではないのですが、私もkmee様と同様の予測をしました。また、他の可能性も考えいろいろ変更を試みましたが、結局PCサイトに送られてしまいました。知識不足で何やら的外れの試みをしているようです。

振り分け部分の記述は下記のようなものです。

//振り分け--------------------------
//$CHKの値
$CHK='38';
//0:Docomo、1:au、2:Softbank、3:ウィルコム、4:L-MODE、5:その他

//「Docomo」
$all = $_SERVER['HTTP_USER_AGENT'];
$user_agent= explode("/",$_SERVER['HTTP_USER_AGENT']);
if($user_agent[0] == "DoCoMo"){
CHK = '0' ;
}
~~1から4省略します~~

//--Android
if(strpos(all,"Android")){
$CHK = '11' ;
}

//その他のユーザーエージェントはPC用とする
if($CHK =='38'){
$CHK='5';
}
//振り分け完了--------------------------------

~~ここからエラー表示される場合の記述がありますが省略~~

//その他(PC版とか)の場合は、PCサイトにリダイレクト
if($CHK == "5"){
$head = "Location:http://www.~省略~/~;
header($head);
}

~~その後、メールフォームの記述が始まり、最後に「完了画面」のprintn記述が入ります~~

以上のような感じでメールフォームに入力し、入力チェックをし、確認画面で送信完了、メールの受け取りもOK、入力者へのメール返信もOK、しかし最後の「完了画面」だけが表示されず、PCサイトに飛びます。
「PCサイトにリダイレクトする」場合の記述部分をコメントアウトしても無理でした。「判定方法」のどこかに問題があるとすればそれはどこなのでしょうか。それとも何か別の問題でしょうか。

長くなってすみません。ご回答いただけると助かります。

投稿日時 - 2011-07-26 13:12:52

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問