ケータイサイトでの認証とかについて 実装「かんたんログイン」編
ケータイの個体識別番号(uid)が欲しい場合、NTTドコモではurlの引数に"guid=ON"をつけなくてはいけない。認証をする時には必ず指定する。
<a href="actionLogin.php?guid=ON">ログイン</a>
UserAgentの判定
uidの取得方法が携帯キャリアによって異なるので、uidを使うときにはUserAgentの判定も同時におこないます。
PEAR::Net_UserAgent_Mobileを使うのが楽です。
<?php require_once('Net/UserAgent/Mobile.php'); $agent = Net_UserAgent_Mobile::factory(); $uid = $agent->getUID(); if ( is_null($uid) && $agent->isSoftBank() ) { $uid = $agent->getSerialNumber(); } ?>
iモードIDだけを使うことを前提にすると、コレだけでuidを取得できます。だた、ソフトバンクではHTTP拡張ヘッダX-JPHONE-UIDを送らない機種もあるのでちょっとスマートじゃないですね。
お前の予定!では学習目的に書き起こしました。UserAgentのキャリア判定を自動にして共通のメソッドgetKeitaiId()で「識別する番号(uidもしくは端末製造番号)」を取得できるようにしました。
<?php require_once('Keitai.class.php'); $ua = Keitai::factory(); $uid = $ua->getKeitaiId(); ?>