Softbankは携帯IDを再度登録する必要があります

[ガラケー版(QRコード)] 総閲覧回数:3,925,327回 / ブログ拍手:2,554
作品DB等各サービスの機能追加情報や、技術系・面白系記事を中心に提供。
記事の投稿は基本Twitterでも告知させて頂いています。
連絡は作品DBの論客の方なら私書、DB外ユーザの方ならメールTwitterで可能です。
アクセス記録[推移 / PV内訳(過去1日 / 過去1週間) / 外部アクセス元 (昨日 / 過去1週間) / ログイン論客足跡]
プロフィール私書(メール)
   /   /送済
評価(一覧   /)
投票   /共:   /
ファン登録
作品/情報/
DB構築()
ブログ
[書く]
攻略記事リンク集
My Play List
<=次の記事 クローラー::パラメーターの値に勝手にURLを入れてクロールしていくスパム(?)
=>前の記事 携帯版日記に幾つか機能を追加

1.
2008/03/01 作品DB開発/運用 > Softbankは携帯IDを再度登録する必要があります」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]

色々と考えた結果、Softbankについては別のキーを保存した方が良いということが分かったので、一度Softbank系のデータは消しました。
ログイン画面からログインするか日記・評価・ファン登録のどれかをすると、再度携帯IDによるログイン状態キープになります。

諸所の携帯ID発行可能な携帯機の判定は、
sub is_mobile(){
  my $self=shift;
  $self->init_vars() unless $self->{'loaded_vars'};
  my $mobile_identity=0;
  if($ENV{'HTTP_USER_AGENT'}){
    if($ENV{'HTTP_X_UP_SUBNO'}){ # 無条件にKDDI
      $mobile_identity++;
    }
    elsif( $ENV{'HTTP_X_JPHONE_UID'}){ # 無条件にSoftbank
      $mobile_identity++;
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!UP[\./]Browser!i){ # とりあえず携帯であることは確実
      $mobile_identity++;
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!Opera|MSIE|Firefox|Mozilla!i){ # 念の為明示的に除外(KDDI && MSIE && Operaの事例があった為)
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!^(?:J-PHONE|Vodafone|SoftBank)!i){ # 無条件にSoftbank
      $mobile_identity++;
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!DoCoMo!i){ # 無条件にDocomo
      $mobile_identity++;
    }
  }
  return $mobile_identity;
}

携帯IDの取得は
sub get_mobile_id(){
  my $self=shift;
  $self->init_vars() unless $self->{'loaded_vars'};
  my $mobile_id;
  if($ENV{'HTTP_USER_AGENT'}){
    if($ENV{'HTTP_X_UP_SUBNO'}){
      $mobile_id=$ENV{'HTTP_X_UP_SUBNO'};
    }
    elsif( $ENV{'HTTP_X_JPHONE_UID'}){
      $mobile_id=$ENV{'HTTP_X_JPHONE_UID'};
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!^(?:J-PHONE|Vodafone|SoftBank)!i){
      if($ENV{'HTTP_USER_AGENT'}=~ m!/(SN\d\d\d\d\d\d+)!i){ 
        $mobile_id=$1;
      }
    }
    elsif($ENV{'HTTP_USER_AGENT'}=~ m!DoCoMo!i){
      if($ENV{'HTTP_USER_AGENT'}=~ m![/\;\(\s](ser[^\s\;/]{14,14}[^\s\;/]+)!){ # 15 characters
        $mobile_id=$1;
      }
      elsif($ENV{'HTTP_USER_AGENT'}=~ m![/\;\(\s](icc[^\s\;/]{19,19}[^\s\;/]+)!){ # 20 characters
        $mobile_id=$1;
      }
    }
  }
  return $mobile_id;
}
という形で行っています。
皆様のご協力により、各種携帯機種での事例報告で問題となるパターンを潰してきたので、そろそろ安定する筈。。。

コメントする


[他の記事も読む]
<=次の記事 クローラー::パラメーターの値に勝手にURLを入れてクロールしていくスパム(?)
=>前の記事 携帯版日記に幾つか機能を追加


大分類が「作品DB開発/運用」の記事
この論客の記事全て
↑上へ