• ベストアンサー
  • 困ってます

ソフトバンクのUSERAGENTうまく取得できない

  • 質問No.2946843
  • 閲覧数532
  • ありがとう数1
  • 気になる数1
  • 回答数2
  • コメント数0

お礼率 24% (72/298)

下記のようにUser-Agentを取得し、
各キャリア別に振り分けているんですが、
ドコモ、kddi、PCはきちんと判定してそれぞれを
表示してくれますが、
ソフトバンク、ボーダフォン、j-phoneがうまく
判定してくれません。

ソフトバンクのソフト(ウェブコンテンツビューア)だと
パソコン版が表示され、実際の携帯でみるとau画面が表示されて
しまいます。

どなたかお力をおかしください。



<?
$header = getallheaders();
$agent = $header["User-Agent"] ;

if(ereg("DoCoMo",$agent)){
header("Location: http://www.aaa.com/mobi/i/index.html");
exit;
}
elseif(ereg("UP.Browser",$agent)){
header("Location: http://www.aaa.com/mobi/e/index.html");
exit;
}
elseif(ereg("SoftBank",$agent)){
header("Location: http://www.aaa.com/mobi/v/index.html");
exit;
}
elseif(ereg("Vodafone",$agent)){
header("Location: http://www.aaa.com/mobi/v/index.html");
exit;
}
elseif(ereg("J-PHONE",$agent)){
header("Location: http://www.aaa.com/mobi/v/index.html");
exit;
}
else{
header("Location: http://www.aaa.com/mobi/home.html");
exit;
}
?>

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 60% (9/15)

あんまり"ereg"関数は使いませんが、下記のソースでちゃんと分岐しますか?
コメント部分を変更して試して見てください。

-----------
if ( preg_match('/^DoCoMo/', $_SERVER['HTTP_USER_AGENT']) ) {
// DoCoMo
} elseif ( preg_match('/^(J-PHONE|Vodafone|SoftBank)/', $_SERVER['HTTP_USER_AGENT']) ) {
// Softbank(Vodafone, J-Phone)
} elseif ( preg_match('/UP\.Browser/', $_SERVER['HTTP_USER_AGENT']) ) {
// au
} else {
// etc
}
補足コメント
etu007

お礼率 24% (72/298)

回答ありがとうございます。
結果としてソフトバンクは
ビューアで観るとPC
ソフトバンク携帯で観ると au
の画面になってしまいます。

これはおそらく、スクリプトの誤りというより
サーバーが原因なのではないかと思い始めてしまいました。
xrea.comを使用しています。
このサーバーで各関数が全て使える環境には
あるのです。

サーバーの方も調べてみます。
どうもLocation:があやしいようです…
投稿日時:2007/04/25 00:34
お礼コメント
etu007

お礼率 24% (72/298)

調べてみましたが
サーバーには問題ないようです。

ちなみに
SoftBankの3GにはAUと同じUP.Browserが含まれるものも
あるんですね。これでは混同してしまいますね
投稿日時:2007/04/25 01:21

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 60% (9/15)

ソース中の下記の部分を変更してみてください。

----------------
> $header = getallheaders();
> $agent = $header["User-Agent"] ;

   ↓   ↓   ↓

$agent = $_SERVER['HTTP_USER_AGENT'];
----------------
補足コメント
etu007

お礼率 24% (72/298)

ありがとうございます。
早速試してみました。やはり、ソフトバンク、ボーダフォン、j-phone分はうまく作動していないようです。
機種で試してはいませんが、
iモードもauもビューアでも確認できるんですが…
致命的な欠陥があるんでしょうか…
投稿日時:2007/04/24 19:34
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ