ムームーDNSでGoogle Appsを使う
ムームードメインの新サービス「ムームーDNS」を使って Google Apps を使ってみるテスト。
- CNAMEレコード
- MXレコード
それぞれをGoogle Apps に合わせられるのかな。
example.com というドメインで Google Apps に登録した。
- 管理者ログインアドレス
新しい管理者を Google Apps の登録に必要なもの
- 新しい管理者として Google Apps の使用申請をするにはすでに使用しているメールアドレス
- 予めドメインを購入しておく
- dnsにドメインを登録しておく
- 2008/12/17 新機能追加!ムームーDNSにカスタム設定デビュー
- 登録したドメインのアクティベーションをする
- dnsのCNAMEをグーグルさんに言われた通りに設定する
- googlexxxxxxxxxxxxxx = google.com
- 要するに http://googlexxxxxxxxxxxxxx.example.com/ でグーグルのページを表示出来るようにする。アクティベーションが済んだら削除してもいいと思うよ。
- dnsのCNAMEをグーグルさんに言われた通りに設定する
- Gmailを使えるようにするためには dnsのMXをグーグルさんに向ける。
- http://muumuu-domain.com/でそこまで出来るかは今のところ不明。
PEAR::Pager にaccesskey属性を追加する。
携帯電話でウェブをみる時に便利なのは、電話のキー番号と画面のリンクを対応させることが出来るってこと。
例えば、はてなダイアリーだと「4」を押せば「前日の日記」にジャンプして、「0」を押せば「はてなダイアリーのトップページ」にジャンプできる。
PEAR::Pagerを使っているときにも、同じようにナビゲーション出切ると便利だなと思って探してみたら、はてなダイアリーで言及されていた。
Pagerにはマニュアルに載ってないオプションが結構ある。
PEAR::Pager - ぱんぴーまっしぐら typo-H
PEAR :: Manual :: Pager::factory
accesskeyとかおっと思うのですが、ページナンバーがそのままアクセスキーになる糞仕様。
10とかアクセスキーに設定しても意味ないじゃん。
nextAccesskey、firstAccesskeyとかいうオプション作ればいいのに。
使ってみるとナルホドくそ仕様だ。でもやっぱり携帯電話のアクセスキーは便利なので、仕方ないからPEAR::Pager::Common.phpを直接改変してみた。
オプションを3つ追加した。
- accesskeyNavi = boolean
- "true" にすると番号キーで前のページ、後のページの捜査が出来るようになります。
- accesskeyPrev = string (as numerical)
- 前のページに対応する番号キーを設定する。0〜9,*,#を設定できます。(ただし携帯電話端末によって異なる)
- accesskeyNext = string (as numerical)
- 後のページに対応する番号キーを設定する。0〜9,*,#を設定できます。(ただし携帯電話端末によって異なる)
PEARに取り込んでもらいたいとは思わないけど、プロポーザルってどうやるのかな?
続きを読むセッションをオブジェクトっぽくするだけのクラス
phpのセッション変数 $_SESSION に直接タッチするのをなるべく減らす目的に作った中途半端なクラス。どちらかというとSessionクラスを使うことよりも、セッションの発動を制御する処理を使うのがメインかもしれない。
アプリケーションで必ず読み込む共通動作設定ファイルを用意する。そこでセッションを有効にするスクリプトファイル名を定義して、セッションの発動をコントロールできます。
変数 $__SESSION_CLASS_CONTROL__ を宣言しなければ、Session.class.phpをコールすれば常にセッション発動(session_start())します。
<?php /* * セッションを有効にするスクリプトの定義 * 例えば、認証チェックを継続して行なうページでセッションを発動させる。 */ static $__SESSION_CLASS_CONTROL__ = array( 'delete.php', 'detail.php', 'top.php' ); /* * $__SESSION_CLASS_CONTROL__ を定義してからSession.class.phpをコールする */ include_once('Session.class.php'); /* * セッションを有効にするページでは自動的に、 * セッションの再生成をおこなってSessionIDを書換える */ if ( __IS_SESSION_CLASS_CALLED__ ) { if ( isset($_SESSION) ) sessionRegenerate(); } ?>
Session.class.phpの使い方
例1.セッションを始める or 値を格納する
<?php require_once('Session.class.php'); $sess = new Session('newSession'); $sess->setVar('userInfo', $userInfoFromDB ); $sess->setVar('userAuthInfo', $authFromRequest ); $sess->setSession(); ?>
例2.セッションがすでにある場合のインスタンス化と値の取り出し方
<?php require_once('Session.class.php'); $sess = $_SESSION['newSession']; $userInfo = $sess->getVar('userInfo'); $authInfo = $sess->getVar('userAuthInfo'); ?>
- ファンクションリスト
void sessionIsOver() : セッション終了時にコールする関数
void sessionRegenerate() : セッションidを再生成する関数
- Sessionクラスのメソッドリスト
string getTolken() : セッションに保存したトークンを取得する。
void setVar (string $name, mixed $value) : 値をセッションオブジェクトに保存する。
mixed getVar (string $name) : 保存した値を取得する。引数は保存時のインデックス名。
string setTolken ([string $aTolken = NULL]) : 二重投稿防止用のトークンを保存。引数無しなら自動生成して戻り値で返す。
bool tolkenValidate ([string $requestTolken = NULL]) : トークンを比較する。引数がなければ$_REQUEST['sessionToken']と比較する。
void setSession () : セッションオブジェクトを実際に保存する。値を変更したら最後に必ずコールするメソッド。
void resetSession () : セッションオブジェクトをリセット(null)する。
携帯電話のUserAgent判定クラス
- Keitai.class.php
携帯のUserAgentを判定するファクトリメソッドなクラス これは、PEAR::Net_UserAgent_Mobileを学習目的にコピーしたものです。
キャリアごとにパースの仕方が異なるので、それぞれ別のクラスに分けているが使用するメソッドは同じため、基本クラスを継承している。しかし、インスタンス化に別々の new をかますのは面倒だからまとめて面倒をみてくれるファクトリ メソッド パターンを使っているよ。
<?php $ua =& Keitai::singleton(); if ( !$ua->isValidIp() ) { // Keitai_IP_List.class.phpが必要です die('携帯シミュレータなどのアクセスは禁止です。'); } $id = $ua->getKeitaiId(); ?>
- メソッドリスト
続きを読むobject factory ([string $userAgent = null])
object singleton ([string $userAgent = null])
bool isError ()
string errorMessage ()
bool isDoCoMo ()
bool isKDDI ()
bool isSoftBank ()
bool isWillcom ()
bool isMobile ()
bool isNonMobile ()
bool isSmartPhone()
string getCarrier() : キャリア名 DoCoMo, KDDI, SoftBank, Willcom
string getComment()
string getKeitaiId() : UIDを取得する UIDがない場合は端末製造番号など固有の番号を取得する
string getModel() : 端末モデル名を取得する
string getRawModel() : 端末モデル名の文字列をそのまま取得する
string getUA() : UserAgentをそのまま取得する
string getVendor() : 端末メーカー名またはブラウザ名を取得する
string getVersion() : ブラウザのバージョンを取得する
bool isValidIp() : アクセス元がキャリアゲートウェイであるか判定する
ケータイサイトでの認証とかについて 実装「セッション」編
ページごとにセッションを使うかどうかを一括してコントロールしたいので初期実行ファイル(init.php)でセッションを使うページを配列として定義する。
セッション管理をするためのクラス(Session.class.php)で、実行ファイル(メインスクリプト)の判定処理とセッション制御処理を挿入する。
セッションを有効にするページ以外にアクセスしてもsession_start()は呼ばれないので、検索エンジンのクローラのアクセスにセッションidが取り込まれることがなくなる。
- init.php
<?php /* * セッションを有効にするスクリプトの定義 */ static $__SESSION_CLASS_CONTROL__ = array( 'commentEntry.php', 'delete.php', 'detail.php', 'registAndJump.php', 'sharedCheck.php', 'top.php', 'viewfile.php' ); include_once('Session.class.php'); /* * セッションを有効にするページでは * セッションの再生成をおこなってSessionIDを書換える */ if ( __IS_SESSION_CLASS_CALLED__ ) { if ( isset($_SESSION) ) sessionRegenerate(); } ?>
- Session.class.php の冒頭部分
<?php /* -*-java-*- */ /* * セッションの有効無効を管理するには * 定数配列 __SESSION_CLASS_CONTROL__ にスクリプト名を代入する * この定数が宣言されていなければ、これまで通りに使用できる。 */ if ( isset( $__SESSION_CLASS_CONTROL__ ) ) { if ( in_array( basename($_SERVER['SCRIPT_FILENAME']), $__SESSION_CLASS_CONTROL__ ) ) { define('__IS_SESSION_CLASS_CALLED__', TRUE ); } else { define('__IS_SESSION_CLASS_CALLED__', FALSE ); } } else { define('__IS_SESSION_CLASS_CALLED__', TRUE ); } /* * セッション有効の場合だけ、session_start()する。 */ if ( __IS_SESSION_CLASS_CALLED__ ) { session_start(); } ?>