symmetric

ケータイ向けGoogle Analyticsで設置する「ga.php」にtypoがあり、利用時には修正が必要なようです    

2010/2/9 火曜日 matsui Posted in PHP, ニュース, 記事紹介・リンク 1 Comment »

makiさんからのタレコミです。
情報提供ありがとうございます。

先日公開された国内ケータイ向けGoogle Analytics正式版ですが、PHPを使って設置する場合に利用される「ga.php」に不備があり、利用時には修正が必要なようです。

 

→ 晄夏ノート Google Analytics for Mobileの正式版導入時に注意したほうがいいこと(PHP版) [chinacky.hicage.com]

→ F.Ko-Jiの「一秒後は未来」 モバイル向けGoogle Analyticsで配布されているga.phpにタイポが発見される [blog.fkoji.com]

 

本日時点でGoogle Analyticsサイトから「ga.php」を落としなおしてみたのですが、今も直ってないようですね。

20100209_ga_typo

 

正しくは

×「$SERVER」 ○「$_SERVER
※「_(アンダーバー)」が抜けている

になります。

ここが間違っているとドコモ以外のキャリアの判定がうまく行われないようです。

 

既にPHPでGoogle Analyticsを使っている方、これから使おうとしている方は、上記の3箇所を修正してから利用する必要があるようです、ご注意ください。

 

関連:

このエントリーを含むはてなブックマーク はてなブックマークに追加

symfonyでモバイルサイトを作成する際のポイントがまとめられた記事「ウノウラボ symfonyでモバイルサイトを作るときにやったこと」    

2009/9/28 月曜日 matsui Posted in PHP, 記事紹介・リンク No Comments »

ケータイ関連の良記事が多いウノウラボさんのブログに「symfonyでモバイルサイトを作るときにやったこと」というエントリーが掲載されていましたのでご紹介します。

→ ウノウラボ symfonyでモバイルサイトを作るときにやったこと [labs.unoh.net]

 

最近はケータイ案件に限らずフレームワークを使って開発を行うケースが多いですが、この記事ではPHPのフレームワークsymfonyを使ってモバイルサイトを作る際のポイントが紹介されています。

 

  • docomoのセッション管理
  • 絵文字に対応
  • アスキーアートの文字化け対策
  • メンテナンス時に確認端末を通す
  • 文字コードの変換

という5つのポイントに関して解説されています。
サンプルコードも掲載されていますのですぐ使えて便利ですね。

 

ただ、ヘルパー関数のhr対策などに関するところは、もう少し踏み込んで欲しかったなと思います。
個人的には他の人はどうやって対処しているのかなと気になっていた部分なので、実際のコードを見てみたいなと思いました。
(サンプルとして掲載するには地味で面白みのないコードなのかもしれませんが)

 

しかしながら全体としてsymfonyでモバイルサイトを初めて作る方にとっては、とても勉強になる良エントリーだと思います。
ぜひ参考にしてみてはいかがでしょうか。

 

関連:

このエントリーを含むはてなブックマーク はてなブックマークに追加

実際に動いてすぐ使える「PHPによるかんたんログインサンプル」を作ってみました    

2009/7/31 金曜日 matsui Posted in PHP, ソフト紹介 6 Comments »

ログインが必要なケータイサイトではほぼ必須となる、端末情報を使った「かんたんログイン」ですが、Web上にはあまり良い情報がないようです。

そこで、実際に動いてすぐ使えるような、PHPによる3キャリア対応かんたんログインのサンプルプログラムを作ってみました。

 

サンプルの機能

ログイン画面、 新規登録画面、 ログイン後(マイページ)画面

かんたんログインとは?

プログラムを紹介する前に、かんたんログインについて軽く説明します。

かんたんログインとは、ケータイ端末から契約情報や製造番号をサイトに送信し、それを使ってログインするプログラムの総称です。

ユーザ名やメールアドレス、パスワードなどを入力せずワンタッチでログインできますので、文字が打つのが大変なケータイ環境ではとても重宝されます。

 

今回は端末情報として、「ドコモ:iモードID、au:EZ番号、ソフトバンク:x-jphone-uid」を使って認証を行います。
各種端末IDについては、以前書いたこちらの記事で詳しく説明しています。

→ ke-tai.org ケータイの端末ID・ユーザIDの取得についてまとめてみました [ke-tai.org]

動作条件と設置の流れ

動作に必要な条件:

  • PHP 5系が動くこと
  • MySQLが動くこと
  • .htaccessが動くこと

※DB接続にはPDO、端末情報の取得にはPEAR::Net_UserAgent_Mobileを利用しています。
※.htaccessはケータイからのセッションを使うためとアクセス元制限に利用しています。

 

設置の流れとしては次の通りです。

  1. プログラム一式をダウンロードする
  2. MySQLにデータベース「login_db」を作成する
  3. 「users.sql」を元にテーブル「users」を作成する
  4. プログラム一式をアップロードする
  5. PEARのNet_UserAgent_Mobileが入っていないのであればインストールもしくはアップロードする

かんたんログインサンプルの設置

1. プログラム一式をダウンロードします

こちらからダウンロードしてください。

→ ke-tai.org かんたんログイン サンプルプログラム (ver1.0) [ke-tai.org]

 

2. MySQLにデータベース「login_db」を作成します
3. テーブル「users」を作成します。

作成方法はあまりに基礎的な内容のためここでは紹介しません。
不慣れな方はphpMyAdmin上から作ると便利でしょう。

 

4. プログラムをアップロードします

設置は次のように行います。
設置先は仮で「login」フォルダとします。必要に応じて適宜変更してください。

login/
├ .htaccess   ケータイからセッションを使うための設定ファイル
├ common.php  共通関数
├ login.html  ログイン画面テンプレートHTML
├ login.php   ログイン画面PHP
├ mypage.html  マイページテンプレートHTML
├ mypage.php  マイページPHP
├ new.html   新規登録テンプレートHTML
├ new.php    新規登録PHP
├ users.sql   テーブル作成用SQL(※こちらはアップの必要はありません)
└ Net      PEAR::Net_UserAgent_Mobile(※インストールされてない場合のみ)
    └ UserAgent [以下略]

PEAR::Net_UserAgent_Mobileは、サーバにインストールを行います。
レンタルサーバなどでインストール出来ない場合は、こちらからダウンロードを行い、上記(loginフォルダの下にNet/UserAgent/・・・)のようにアップロードします。

→ PEAR Net_UserAgent_Mobile Download [pear.php.net]

 

5. パスワードを変更する

データベースに接続するユーザ名、パスワードはデフォルトでroot:rootになっています。

common.phpの以下の部分(44行目付近)を環境に合わせて変更してください。

/**
 * DB接続
 *
 * データベースに接続する
 *
 * @return	class		PDO接続クラス
 */
function dbConnect()
{
	// データベースの設定
	$db_host = 'localhost';		// 接続サーバ
	$db_name = 'login_db';		// 接続DB名
	$db_user = 'root';		// 接続ユーザ名
	$db_pass = 'root';		// 接続パスワード

 

6. 動作確認を行う

ケータイからアップロードしたサイトの「login/login.php」にアクセスすれば、かんたんログイン登録が行えるはずです。

※PCからはアクセスできません。
※端末ID通知がオフの場合は登録できません。

プログラム解説

キモとなるのは端末のユーザID取得とセッション管理の部分だけです。

端末ユーザIDの取得は次のようにして行っています。
この情報は個人情報となりますので、暗号化して格納した上で方が良いでしょう。
($salt_stringの値には必要に応じてランダムな文字列をセットしてください)

/**
 * ユーザID取得
 *
 * ケータイのユーザID(契約に紐付くID)を取得する
 *
 * @return	string		ユーザID文字列
 */
function getPhoneUserId()
{
	// PEAR::Net_UserAgent_Mobileの読み込み
	require_once('Net/UserAgent/Mobile.php');

	// インスタンスを生成
	$agent = Net_UserAgent_Mobile::singleton();

	// ユーザID取得
	$uid = $agent->getUID();

	// 暗号化
	if ($uid != '') {
		$salt = 'salt_string';
		$uid = md5($uid . $salt);
	}

	return $uid;
}

 

なお、かんたんログイン機能で最も重要なのは、ケータイからのみアクセスを許可することです。(PCからの接続は不可とする)
PCからだと端末ユーザIDはいくらでも詐称できてしまいます。
必ずケータイからのみアクセス許可としましょう。

アクセス制限は.htaccess内で行っていますが、簡易版となっています。
各キャリアのページや下記のページを参考にして、常に最新のキャリアIPアドレス帯域を指定することをオススメします。

→ ke-tai.org ケータイキャリア・クローラIPアドレス [ke-tai.org]

※追記
可能であるなら上記のアクセス制限に加え、接続元IPアドレスとユーザエージェントを照らし合わせ、同一キャリアであることも確認した方がより良いようです。詳しくはコメント欄をご覧ください。

 

セッションに関しては、上記で取得したユーザIDをセッション変数に格納することでログイン状態としています。
ケータイからセッションを維持するため、.htaccessで次のように設定しています。

php_flag session.use_trans_sid On
php_flag session.use_cookies On

セッションに関してはセキュリティ上の問題も絡みますので、ここでは詳しく解説しませんが、下記の記事(コメント欄も参考になります)を参照してください。

→ ke-tai.org PHPでケータイからセッションを使う場合の設定方法 [ke-tai.org]

その他

  • 本プログラムはかんたんログインの学習用を目的とした簡易的なものとなっています。必要に応じて機能を追加しご利用ください。(こちらではこれ以上の機能追加の予定はありません)
  • プログラムに不備がありましたら、すぐ修正しますのでご指摘ください。
  • お問い合わせ・サポートは原則いたしませんが、フォーラムに書き込むと回答が得られるかもしれません。
  • 重要と思われる情報は下記コメント欄に転載するようにします。あわせてご覧の上でご利用ください。

 

関連:

このエントリーを含むはてなブックマーク はてなブックマークに追加

Net_UserAgent_Mobileがとうとう1.0.0(stable)となりました    

2009/6/23 火曜日 matsui Posted in PHP, ニュース No Comments »

makiesさんからのタレコミです。
(情報提供ありがとうございます)

PHPでのケータイ開発にはかかせないライブラリ「Net_UserAgent_Mobile」ですが、本日6月23日にベータが外れ、とうとう1.0.0 (stable)となったようです。

 

→ PEAR Net_UserAgent_Mobile [pear.php.net]

 

Changelogによると、今回の修正はドコモの新機種が何種類か追加されただけのようです。

先日の開発者さんのブログによると、「今回のリリースに問題がなければ、近いうちに 1.0.0RC3 を 1.0.0 としてリリースします。 」とありましたので、特に大きな問題はなかったのでしょう。

 

長いことbetaという位置づけでしたが、とうとうstableになりました。
これで「-f」オプションをつけなくてもインストールできるようになりますね。

開発者のKUBOさん、ひとまずお疲れ様でした。
今後とも開発がんばってください。

 

関連:

このエントリーを含むはてなブックマーク はてなブックマークに追加

Net_UserAgent_Mobile 1.0.0RC3がリリースされているようです    

2009/5/26 火曜日 matsui Posted in PHP, ニュース, 記事紹介・リンク No Comments »

PHPでケータイコンテンツを作成しているプログラマであれば、ほぼ誰もがお世話になっていると言っても過言ではない「Net_UserAgent_Mobile」ですが、2009年5月25日に「1.0.0RC3」がリリースされたようです。

 

→ PEAR Net_UserAgent_Mobile [pear.php.net]

→ ITEMAN Blog Net_UserAgent_Mobile 1.0.0RC3 をリリースしました [iteman.jp]

 

ご紹介するタイミングを逸してしまったのですが、先日5/11にも「1.00RC2」がリリースされていました。

主な修正点としては、

・RC2がドコモの新機種サポートと不具合の修正 → 詳細はこちら

・RC3が、先日発売されたiモードブラウザ2.0端末、「P-07A, N-06A, N-08A」のサポート

とのことです。

今回のリリースに問題がなければ、近いうちに 1.0.0RC3 を 1.0.0 としてリリースされるようです。

 

また上記ブログ内で、次のようなコメントも記載されていました。
引用させていただきます。

 また、以前の記事「Net_UserAgent_Mobile 1.0.0RC2 をリリースしました」に書いた、

> openpear が PEAR のようなアップロードからのリリースをサポートしてくれると
> 助かります。

に、openpear の開発者のひとりである sotarok 氏 からコメントをいただきました。
嬉しいことに、ファイルアップロードによるリリースに対応する予定があるということです。
ありがとうございます。

これを受けて 1.0.0 以後のリリースは openpear から行うことに決めました。
openpear の今後のさらなる発展に期待しております。

1.0.0以後のリリースはopepearから行われるとのことです。
私はopenpearのファンなので、これも嬉しいニュースですね。

 

関連:

このエントリーを含むはてなブックマーク はてなブックマークに追加