6月 22

テンプレート側
aタグもしくはFORMタグに「utn」の文字を付与する。

PHP
PEAR::Net_UserAgent_Mobile を使って以下のようなメソッドにしておく。

require(PEAR_DIR. 'Net/UserAgent/Mobile.php');

public function GetSerialNumber( $carrier )
{
	if ( $carrier === 'dcm' ) {
	    /*
	      端末製造番号(UTN)
	        端末ごとの番号なので機種変すると使えない
	        
	      フォーマット(15桁のユニークな英数字)
	        "serxxxxxxxxxxxxxxx"
	        
	        ser: FOMA端末個別識別子
	        xxxxxxxxxxxxxxx: FOMA端末製造番号(15桁)
	        
	    */
	    //$agent = Net_UserAgent_Mobile::singleton();
	    //$mobile_id = $agent->getSerialNumber();
	    
	    /*
	      FOMAカード製造番号(UIM)
	       カードごとに割り振りされている。機種変しても番号が変わらない
	      
	      フォーマット(20桁のユニークな英数字)
	        "iccxxxxxxxxxxxxxxx"
	        
	        icc: FOMAカード個体識別子
	        xxxxxxxxxxxxxxx: FOMA端末製造番号(15桁)
	    $mobile_id = $agent->getCardID();
	    */
	    $mobile_id = $agent->getCardID();
	    
	} elseif( $carrier === 'au' ) {
	    
	    /*
	      EZ番号(サブスクライバID)
	        契約に対して1意に割り振られている
	        
	      フォーマット
	        "XXXXXXXXXXXXX_XX.ezweb.ne.jp"
	        
	        XXXXXXXXXXXXX: 14桁の数字
	        XX: 2桁の英数字
	        ezweb.ne.jp: 固定値
	     */
	        
	    $mobile_id = $_SERVER['HTTP_X_UP_SUBNO'];
	
	} elseif( $carrier === 'sb' ) {
	    
	    /*
	      端末製造番号(P型以降で取得可能)
	        端末ごとの番号なので機種変すると使えない
	        携帯の設定で端末シリアル番号を「送出する」を設定した場合、取得可能となる
	        
	      フォーマット(20桁のユニークな英数字)
	        "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
	        
	        P型: 11桁の英数字
	        W型: 15桁の英数字
	        3GC型: 20桁の英数字
	    */
	    //$agent = Net_UserAgent_Mobile::singleton();
	    //$mobile_id = $agent->getSerialNumber();
	    
	    /*
	      ユーザーID
	       カードごとに割り振りされている。機種変しても番号が変わらない
	       
	      フォーマット
	        "xxxxxxxxxxxxxxxx"
	        
	        xxxxxxxxxxxxxxxx: 16桁の英数字
	    */
	    
	    $mobile_id = $_SERVER['HTTP_X_JPHONE_UID'];
	}
	
	return $mobile_id;
}