• 締切済み

ユーザーエージェント(ソフトバンク)

初めて投稿いたします。 現在PHPで携帯とPCの振り分けのプログラムを 作っていますが、ソフトバンクのエミュレーターで 試したところ、どうしてもPCの方のサイトへ飛んでいってしまい ます。ユーザーエージェントは "SoftBank"を返すはずなので 問題ないはずなんですが、どなたか原因が分かりましたら ご教授いただけると大変幸いです。 ----------------------------------------------------------- $user_agent= explode( "/", $_SERVER['HTTP_USER_AGENT']); $GB['user_agent0']=$user_agent[0]; if(preg_match("/^KDDI/",$user_agent[0])) $GB['env'] = "i"; switch( $user_agent[0] ){ case "DoCoMo" : case "L-mode" : case "ASTEL" : case "UP.Browser" : case "PDXGW" : case "SoftBank" : case "Vodafone" : case "J-PHONE" : $GB['env'] = "i";

みんなの回答

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

たぶん「J-EMULATOR」として入ってくると思います。 確認してみてください。

全文を見る
すると、全ての回答が全文表示されます。
  • kozaiku
  • ベストアンサー率41% (256/616)
回答No.1

>ユーザーエージェントは "SoftBank"を返すはずなので 本当にそうか確認しましたか? echoで$user_agent[0] を表示してみては?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 写メールBBSの携帯ページSoftBank振り分けについて

    レッツPHPの写メールBBSを使用しています。 私、個人はauの携帯電話で、友達のドコモも問題なく見れていました。 過去にはボーダフォンの携帯でも問題なく見れていました。 しかし、先月くらいからSoftBankの人から「パソコン用のページが表示される!」と連絡が入りました。 確認すると間違いなくPC用のHTMLを読み込んでいます。 振り分けの記述は下記のデフォルトの通りなんですが。。。 $env = "pc"; $ua = explode("/", $_SERVER['HTTP_USER_AGENT']); if (strstr($ua[0], "DoCoMo")) { $env = "i"; // DoCoMo } elseif (preg_match("#^UP.Browser|KDDI#i", $ua[0])) { $env = "i"; // au } elseif (preg_match("#^J-PHONE|Vodafone|SoftBank|MOT#i", $ua[0])) { $env = "i"; // Vodafone 携帯の設定では無いような気がしますが、どうしたら携帯用のページを表示させてますでしょうか??

    • ベストアンサー
    • PHP
  • 携帯端末振り分けソースがソフトバンク端末でうまくいかない?

    携帯端末振り分けの以下のソースを利用していますが、ソフトバンクからフリーで配布されている「ウェブコンテンツビューア」というシュミレータを使いテストするとtype1~3いずれもデスクトップと判断されてしまいます。 「ウェブコンテンツビューア」は何か設定が必要なのでしょうか?、それともこれらのソースにはソフトバンク端末に対するソースのミスがあるのでしょうか? #type1 if($ua=~ /DoCoMo/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/2/){$user_agent = 'mobile';} elsif($ua=~ /J-PHONE\/[3-9]/){$user_agent = 'mobile';} elsif($ua=~ /Vodafone/){$user_agent = 'mobile';} elsif($ua=~ /SoftBank/){$user_agent = 'mobile';} elsif($ua=~ /ASTEL/){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser")==0){$user_agent = 'mobile';} elsif(index($ua,"UP.Browser") > 0){$user_agent = 'mobile';} else{$user_agent = 'desktop';}#Mac and PC #type2 if($ua =~ /^(DoCoMo\/1)/i){$user_agent = 'mobile';}#DoCoMo elsif($ua =~ /^(DoCoMo\/2)/i){$user_agent = 'mobile';}#DoCoMo_FOMA elsif($ua =~ /^ASTEL/i){$user_agent = 'mobile';}#ASTEL elsif($ua =~ /^J\-PHONE/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^Vodafone/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^SoftBank/i){$user_agent = 'mobile';}#softbank elsif($ua =~ /^KDDI/i){$user_agent = 'mobile';}#au elsif($ua =~ /^UP\.Browser/i){$user_agent = 'mobile';}#au else{$user_agent = 'desktop';}#Mac and PC #type3 if ($ua =~ /DoCoMo|J-PHONE|Vodafone|Softbank|MOT-|L-mode|DDIPOCKET|PDXGW|ASTEL/ ) { $user_agent = 'mobile'; } else{$user_agent = 'desktop';}

    • ベストアンサー
    • Perl
  • phpでエージェントの振り分けがうまくいかない

    phpでエージェントの振り分けがうまくいかない 以下のようにmフォルダの中にindex.phpを以下の内容で設置し、同列でi,a,sフォルダを設け それぞれindex.htmlを設けました。しかし携帯でhttp://hoge.com/m で打つとサイトがみつかりませんになります。<?phpより上は空白、改行はありません。 振り分けがうまく機能しないのはなぜでしょうか? <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://hoge.com/m/i/index.html"); exit; }else if(preg_match("/^(J?-PHONE|Vodafone|MOT?-[CV]|SoftBank)/i", $agent)){ header("Location: http://hoge.com/m/s/index.html"); exit; }else if(preg_match("/^KDDI?-/i", $agent) || preg_match("/UP?.Browser/i", $agent)){ header("Location: http://hoge.com/m/a/index.html"); exit; }else{ header("Location: http://hoge.com/index.php"); exit; } ?>

    • ベストアンサー
    • PHP
  • 携帯ユーザーのPHPによる振り分け

    WindowsXP dreamweaverCS3を使用 PHPの知識はまったくありません。 PCサイト「www.deri6mon.com」(PC用サイト)がすでにできており、 これをQRコードに変換してあります。 そのQRコードをユーザーがスマホと携帯のバーコードリーダーで変換し、 PCサイトにアクセスさせますが、携帯ユーザーは当然容量がオーバーしますので エラーでとまってしまいます。 そこで、別に携帯サイトを用意してPCサイトにアクセスしてきた携帯ユーザーを 携帯サイトに自動で振り分けたいと考えています。 PCサイトの最上部に下記を記述しました。 PHPを書き込んだファイルはhtml→phpに拡張子を変換してあります。 -----------------ここから------------------- <?php $page_m='http://www.deri6mon.com/mb/index.html'; $agent=$_SERVER['HTTP_USER_AGENT']; if (preg_match("/UP\.Browser\/[3-5]/",$agent) || preg_match("/J-PHONE\//",$agent) || preg_match("/DoCoMo\//",$agent) && !(preg_match("/(Win|Mac|Linux|FreeBSD|OS¥/2|Solaris)/i",$agent)) || preg_match("/UP.Browser/",$agent) || preg_match("/^Vodafone/",$agent) || preg_match("/^SoftBank/",$agent) || preg_match("/^MOT-/",$agent) || preg_match("/DDIPOCKET;/",$agent) || preg_match("/WILLCOM;/",$agent) || preg_match("/L-mode\/\//",$agent)) { header("Location: $page_m"); }else{ }//end if ?> -----------------ここまで---------------- しかしどうしても携帯でPCサイトが表示されてしまいます。 どこの設定(記述)をどうしたら良いのでしょうか。 因みにhttp://emu.mobile.goo.ne.jp/emu/emu.phpでPCサイトのアドレスを入れると携帯サイトのTESTが表示されるので記述は問題ないと思います。 教えてgooの過去Qを調べてみて気がついた記述が、私が使っているサーバーは 自動で挿入される広告があり「header Locationはエラーになる」というのが ありました。 これを回避するにはどうすればいいのでしょうか? PHPの知識が無いのでわかりやすく回答していただけるとたすかります。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • ユーザーエイジェントの置き換え

    ユーザーエイジェントを検索して UP.Browserという文字列があった場合、 ユーザーエイジェントをauという置き換え表示したいと思っています。 具体的には KDDI-KC3R UP.Browser/6.2_7.2.7.1.K.4.310 (GUI) MMP/2.0 ↓ au と表示したいのですが、 Perlで記述する場合以下のように書いて間違えありませんか? 間違いなどありましたご指摘ください。 if($ENV{'HTTP_USER_AGENT'} =~ /UP.Browser/) { $agent=~s/$ENV{'HTTP_USER_AGENT'} /au/g; }

    • ベストアンサー
    • Perl
  • ユーザーエージェントの振り分け

    すみません、エージェント振り分けで以下のようにPHPファイルを作りました。 そして各ホルダ i,s にindex.htmlを配置したところ Warning:Cannot modify header information headers already sent by (output started at /home/lolipop,jp-dp44253830/web/mobile/index.php:1) in/home/sites/lolipop.jp/users/lolipop.jp-dp44253830/web/mobile/index.php on line 4 index.php <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://homepege.net/mobile/i/index.html"); exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: http://homepage.net/mobile/s/index.html"); exit; 省略 } ?> お手数ですが教えてください。

    • ベストアンサー
    • PHP
  • PHPでのガラケー、PC、iPhone振り分け

    レッツPHPさんの写メールBBSを使用しています。 iPhoneページを作成し、mailbbs.phpで振り分け設定を試みたのですが どれだけやってもどうにも上手くいきません。 スマートフォンのページ名をmailbbs_smart.htmlとし、 (他のPC用、携帯用ではデフォルトでmailbbs_pc.html、mailbbs_i.htmlとなっていました) 振り分け設定では mailbbs.phpに $ua = explode("/", $_SERVER['HTTP_USER_AGENT']); if (strstr($ua[0], "DoCoMo")) { $env = "i"; // DoCoMo } elseif (preg_match("#^UP.Browser|KDDI#i", $ua[0])) { $env = "i"; // au } elseif (preg_match("#^J-PHONE|Vodafone|SoftBank|MOT#i", $ua[0])) { $env = "i"; // Vodafone } elseif (preg_match($ua[0] , "iPhone")) { $env = "smart"; //iPhone } と記述しました。 他にeregなどでも設定したのですが大抵 ・ページが表示されない か ・PC用のデザインで表示される という風になってしまいます。 htmltamplate.incとの関連付けが上手くいってないからでしょうか。 当方PHPに関してあまり詳しくありません。 レッツPHPさんの写メールBBSを使用した方いましたら、 是非ご教授お願いします。 レッツPHPさんのHP http://php.s3.to/bbs/bbs7.php

    • 締切済み
    • PHP
  • i Phone 用振り分け

    以下のように携帯キャリアごとに振り分け、3キャリア以外は PCフォルダに振り分けるようにした場合ですが、PCフォルダの方で i Phone 用に幅480pxで作成したページを配置すると PCから http://mypage.net/ でアクセスしたユーザーにも i Phone 用の幅480pxページを見せるようになってしまいますか? i Phoneやスマートフォンの対処はどうされているんでしょうか? <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: http://mypage.net/i/index.html"); exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: http://mypage.net/s/index.html"); exit; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ header("Location: http://mypage.net/e/index.html"); exit; }else{ header("Location: http://mypage.net/pc/index.html"); exit; } ?>

    • ベストアンサー
    • PHP
  • サイトが移動しました(301)が出てしまいます。

    以下のようにキャリア判別しましたが、ドコモ(f706i) でみるとサイトが移動しました(301)が出ます。 これはなんとかならないんでしょうか? <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: ​http://sample.com/i/index.html");​ exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: ​http://sample.com/s/index.html");​ exit; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ header("Location: ​http://sample.com/e/index.html");​ exit; }else{ header("Location: ​http://sample.com/pc/index.html");​ exit; } ?>

    • ベストアンサー
    • PHP
  • Smartyを使用した、テンプレート内でのキャリア振り分け

    宜しくお願い致します。 現在モバイルサイトを構築しており、PHP+Smartyを利用しているのですが、テンプレート内で"if文"を利用した(ユーザーエージェントによる)キャリア振り分けをしたいと考えています。 ロジックとしては、PHPファイル内でユーザーエージェントを取得し、変数に適当な値を入れる。 その変数をassignし、テンプレート内ではき出す際に条件分岐。 と考えているのですが、うまくいきません。 ご教授いただけましたら幸いです。 なお、ソースは下記のようになります。 【carrier.php】※ディレクトリーの指定など一部省略 $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ $ca == "i"; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ $ca == "ez"; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ $ca == "sb"; }else { $ca == "pc"; } $tpl->assign('ca','$ca'); $tpl->display('carrier.html'); 【carrier.html】 {if $ca == "ez"}ezです{/if}

    • ベストアンサー
    • PHP