プロが教える店舗&オフィスのセキュリティ対策術

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

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

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

print "文字列";


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

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

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

A 回答 (1件)

スマートフォンは、誤解を恐れずに言えば「ADSLや光の代りに、ケータイの回線を使ったパソコン」です。


ブラウザは「標準」以外のものでも使えますし、各種応答がケータイとは一致しないこともあるでしょう。

> その他はPCサイトへ

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

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

この回答への補足

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

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

printn →訂正 print

です。

補足日時:2011/07/26 13:51
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
これは私が作ったプログラムではないのですが、私も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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!