• ベストアンサー

index.phpでPCからと携帯からのアクセスの自動振分け

こんにちは。phpでindex.phpを作りアクセスしてきた人が携帯かPCかを見分けて自動で各トップページに飛ぶページを作れますか? 自動で飛ばすのはheader関数のLocation(?)を使えば可能だと思うのですが問題はアクセスしてきた人が携帯かPC かを見分ける方法がわかりません。 もしそんな方法があるのでしたらご教授いただけないでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • kaz_iwa
  • ベストアンサー率27% (10/37)
回答No.2

#1です J-PHONE. DoCoMo. EnvDirecUP.(auやH') 各キャリアのUSER_AGENTです。 ちなみにauはHDMLで記述されてる必要があります のでauだけ別ページになります。 後XREAのように広告が↑に付く無料サーバーだと header Locationはエラーになるので注意する必要が あります。

amountainblast
質問者

お礼

ありがとうございます。 auはhtmlとは記述が違うのですね。 でもドコモもj-phoneもpCで見るのとは使えるタグが少ないらしいですので、頑張って作って見ます。 ありがとうございました。

その他の回答 (4)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.5

回答が得られたようなので、最後に雑談です(笑) 超簡単に偽装できますよ。 Windowsは使わないのでIEは知りませんが、ネットスケープだと、pref.agentあたりをいじれば、あら不思議!「ネットスケープがDoCoMo…なんて環境変数をはき出します。 とまあ、色々な事をする人がいるわけですから、出来るだけしにくいコードを書くことが重要です。 では

  • R34_666
  • ベストアンサー率25% (17/66)
回答No.4

みなさん言ってますが、簡単にであればHTTP_USER_AGENTでいいですが、USER_AGENTは偽装出来るので確実にやるならREMOTE_ADDRでIPのチェックした方が良いでしょう。 以下、各社のIPアドレスと端末情報載ってます。 DoCoMo http://www.nttdocomo.co.jp/p_s/imode/make/spec/index.html Vodafone http://www.dp.j-phone.com/dp/ au http://www.au.kddi.com/ezfactory/tec/index.html ちなみにIP割り振りの場合、ドコモ以外は数多いし、中途半端に始まったりでえらい大変です。 私の場合はそこまで厳密にやらなくても良いって事でREMOTE_ADDRからサーバ名に置き換えて割り振りしてます。

amountainblast
質問者

お礼

ご回答ありがとうございます。 IPの振分けですが、確かに大変そうですね。 私の場合もPHPの勉強から少し応用として今回のようなことをやろうとしているのでHTTP_USER_AGENTと言う方法が分ければ十分です。しかし今後もし厳密にすることが必要になれば試してみたいと思います。ありがとうございました。

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

簡易的で良ければNo1の解答の通りでいいと思います。 が、ぶっちゃけUserAgentなんて超楽勝に改竄できます。 もう少し本気で振り分けしたければ(絶対にPCでアクセすられたくないとか…)REMOTE_ADDRによって、各社のIPアドレスの範囲指定で振り分けた方がいいですよ。

amountainblast
質問者

お礼

ご回答ありがとうございましす。 >ぶっちゃけUserAgentなんて超楽勝に改竄できます。 そんな簡単に出来るんですね。 でもやろうとしていることが 現在PHPの勉強をしていて メールフォームを使ってメールを送るのにPCだけでなく携帯からも送信できるようにするにはどうしたらいいかな???程度なんでそんな本気で振り分ける必要もないんで…でも改竄できるなんて知りませんでしたので勉強になりました。ありがとうございます。

  • kaz_iwa
  • ベストアンサー率27% (10/37)
回答No.1

環境変数の$_SERVER[HTTP_USER_AGENT]を取得して その環境変数内にdocomo等の文字があれば携帯頁に Locationさせればイケます。 $ua = $_SERVER["HTTP_USER_AGENT"]; if(ereg("DoCoMo",$ua)){ header("Location: http://localhost.com/i_mode.php"); exit; } こんな感じだと動くはずです。

amountainblast
質問者

お礼

早速のご回答ありがとうございます。 なるほど環境変数にそのような情報があるわけですね。 あつかましいですがもう一つすみません。 docomoだとDoCoMoでしたら ボーダフォンやauの環境変数は何なんですか?

関連するQ&A