Archive for 12月, 2007

GoogleMaps(iアプリ版)にGPS機能が追加されました

2007/12/14 金曜日 Posted in ニュース | No Comments »

Google Maps for Mobile(iアプリ版) にGPS機能が追加されたようです。 → Google Google Maps for Mobile ( i アプリ版 ) に GPS 機能が加わりました [blogspot.com] アプリのダウンロードはこちらから行えます。 → Google モバイルで Google マップ [google.co.jp]   メニューから「現在地」を選択すると、一度ブラウザが開き、そこで位置情報を取得してアプリに戻る、という仕掛けとなっているようです。   関連: 「Google Chart API」をケータイから使ってみる GoogleAdsenseモバイル版を使う上での注意点 Googleのモバイル向けAdSenseを導入する方法 Read more..

FlashLiteについての情報がまとめられている「ん・ぱか工房」

2007/12/13 木曜日 Posted in Flash, 記事紹介・リンク | 2 Comments »

今回はFlashLiteに関する多くの情報がまとめられたサイト「ん・ぱか工房」をご紹介します。 Flashの他にも色々な技術情報が載っています。 → ん・ぱか工房 トップ [saturn.dti.ne.jp] 特にこちらのページが役に立ちました。 → ん・ぱか工房 Flash Lite 1.0/1.1メモ [saturn.dti.ne.jp] ソフトバンク端末のFlash対応状況やバージョンは、公式サイトにも載っておらず、情報源が少ないため助かりました。 近日中に「ケータイスペック一覧ページ」のデータに反映したいと思います。 Read more..

PHPでケータイからセッションを使う場合の設定方法

2007/12/12 水曜日 Posted in PHP, サーバ | 23 Comments »

今回は、ケータイ上からPHPのセッションを使う場合の設定方法についてです。 ケータイからPHPのセッションを機能を使う場合、端末によってはクッキーが利用できない場合があるため、そのままでは使うことができません。 セッションを使いたい場合は、インストール時のconfigureオプションに、「--enable-trans-sid」を付ける必要があります。 ※Windowsの場合は特に設定の必要はありません。 また、「php.ini」の設定で、次のように設定してください。 ※設定変更後はWebサーバの再起動が必要です session.use_trans_sid = 1 もしくは「.htaccess」でも設定することができます。 ※.htaccessでの設定上書きが許可されている場合のみ php_flag session.use_trans_sid On 設定変更は、phpinfoで確認できます。 PHPのコード内で、 ini_set('session.use_trans_sid', '1'); でも設定できますが、その場合は「session_start();」より前に実行する必要があります。   設定が有効になると、リンクの後ろに自動でセッションIDが付加され、セッション変数が引き継げるようになります。 ※ただしクッキーが使える端末で、「session.use_cookies On」の場合には、セッションの管理にはクッキーが優先して利用され、URLにセッションIDはつきません。 セッションIDが付加された例: <a href="index.php?PHPSESSID=b37b5e8e31118c45e19a5fb6b70c215a"> トップへ </a> ページの移動に静的HTMLを挟んだり、引数をつけないでリダイレクトしたりすると、セッションは切れてしまいますので注意が必要です。   ※セッションハイジャックに対する注意書きが足りないとのご指摘を受けましたので追記しました。失礼しました。 上記設定のままですと、URLに固定のセッションキーがついたままの状態のため、リンク先のページにRefererが漏れてしまったり、友達へメールでURLを転送した場合などに、セッションハイジャックされてしまう可能性があります。 そこで安全度を高めるために、次のような対応策を平行して行うと良いようです。 ※再度ご指摘を頂きました。iモードの端末はRefererを出力しないので、その場合はRefererを原因としたセッションハイジャックは考慮しなくてもよいようです。 クッキーを利用できる端末の場合は、そちらを利用する 端末IDによる認証+IPアドレス制限を行う session_regenerate_id関数を利用する 1については、auとソフトバンクの最近の機種ではクッキーが利用できます。 クッキーが利用できれば、URLにセッションIDを付加しなくてすみますので、URLからの漏洩を防ぐことができます。 セッションの管理にクッキーを優先して利用するには、「php.ini」または「.htaccess」で、「session.use_cookies On」と設定されている必要があります。 2の「端末IDによる認証+IPアドレス制限」については、まず.htaccessなどで、携帯キャリアのIPアドレスからのみアクセス可能な状態にします。 その状態でセッションに端末IDを格納し、アクセスの度に認証チェックを行うことでなりすましを防ぎます。 IPアドレスの制限をかけるのは、Refererが漏れている場合は、端末IDも同時に漏れているケースが多いためです。 端末IDはリクエストを偽造することで、なりすまされる可能性があるため、携帯実機からのアクセスのみとすることで安全度を高めます。 3の「session_regenerate_id関数」は、アクセスの度にセッションIDを変更するためのものです。 PHPのバージョンによって対処法が異なりますので注意が必要です。 まずPHP5の場合は簡単です。 PHP5でのセッションID再生成のサンプル session_start(); session_regenerate_id(true); session_regenerate_idの引数にtrueをセットすることで、古いセッションIDは破棄され、毎回新しいIDがふられます。 PHP4ではこの引数が利用できないため、古いセッションは破棄されず、同じことを実現しようとすると少し大変です。 PHP4でのセッションID再生成のサンプル // セッション開始 session_start(); // 古いセッションを保存 $sess_tmp = $_SESSION; // セッション変数を破棄 session_destroy(); // セッションIDを再生成 session_start(); session_regenerate_id(); // セッションを元に戻す $_SESSION = $sess_tmp; 参考にさせて頂いたのはこちら[php.gr.jp]のページです。 欠点としては、アクセスの度にセッションファイルが作成されるため、ゴミファイルが残りやすいという点があります。 アクセスが多いサイトの場合は、ガーベージ・コレクションの設定をより頻繁にしたり、こちら[phppro.jp]やこちら[ishinao.net]のやり方を参考にすると良いかも知れません。 なお、session_regenerate_id関数を使うと、毎回セッションIDが変わるため、通信エラーが起こった際にセッションが切れてしまう可能性があるようです。 利便性を重視するかセキュリティを重視するか、扱う情報の重要度に応じて使い分けると良いと思います。 (詳しくはコメント欄をご参照ください)   ※追記分について、まだセキュリティ上問題があったり、何か他に良い方法がありましたら、ご指摘をお願いします Read more..

携帯サイト作りの基本がまとめられた「Perlで作るモバイルサイトのコツ」

2007/12/11 火曜日 Posted in 記事紹介・リンク | No Comments »

先日たまたまGoogleで検索していて見つけました。 有名なサイトなので、すでにご存じの方も多いかもしれませんが、まだ知らない方のためにご紹介します。 → CodeZine Perlで作るモバイルサイトのコツ [codezine.jp]   ソフトバンクではなくVodafoneとなっていたり、少し情報が古い部分もありますが、役に立つ情報が多いです。 Perlをターゲットに書かれていますが、他の言語を利用している場合でも応用可能な情報が多数あります。 内容は次の通りです。 第1回:3キャリア対応のページを作成する 第2回:CPANモジュールでデコメールを作成する 第3回:携帯電話の位置情報を取得する 第4回:絵文字・機種依存文字を考慮した文字コードの相互変換 第5回:効率的なXHTMLの出力方法 第6回:携帯端末でのセッション管理 第7回:絵文字を含んだメールを送信する まだ完結とは書かれていませんが、第8回はあるのでしょうか?   関連: 絵文字についての情報がまとめられたプレゼン資料「ケータイ絵文字のはなし」 Read more..

「Google Chart API」をケータイから使ってみる

2007/12/10 月曜日 Posted in PHP | 1 Comment »

先日公開されたばかりの「Google Chart API」を、ケータイから使ってみようと思います。 「Google Chart API」とは、グラフを描画するためのAPIで、パラメータを投げるとGoogle側でPNG画像としてグラフを生成してくれるものです。 参考サイト: → Google Chart API Developer's Guide [google.com] → PHPSPOT開発日誌 Googleのグラフ描画API「Google Chart API」 [phpspot.org] → 404 Blog Not Fount Google Code Chart - 折れ線グラフうぃざ~ど [livedoor.jp] しかしながら、DoCoMoの端末はPNG画像が表示できないため、コンバートしてやる必要があります。 au, ソフトバンクに関してはそのままで大丈夫です。   GoogleChartサンプルPHPコード <?php // チャートのURL $url = 'http://chart.apis.google.com/chart'; $url .= '?cht=p3&chd=s:hW&chs=250x100&chl=ke-tai|org'; // ドコモの場合のみ if (preg_match('/^DoCoMo/', $_SERVER['HTTP_USER_AGENT'])) { // ... Read more..