(5ページ目) 新着記事

なぜPHPのautoload()が早いのか

__autoload()が早いというよりも、class_exists()に比べてrequre_once()、include_once()が遅いからというもの(クラスの読み込み判定の場合)。 通常__autoload()内でクラスの有無を調べて無ければ読み込みを行う。一度しか呼ばれないものならその場で読み込んだほうが早いが、複数回読み込み判定がおこなわれるものがある場合(Superクラスなど)一度a… 続きを読む

Webの分散ID認証システムについて

分散認証システム関係の話。 あるユーザーの本人確認が必要な時に結果的に必要なものは「本人かそうでないか」。その結果を得るためにIDやメールアドレスやパスワードなどの組み合わせで判別する。アプリケーション毎にその判別を行うと当然判別に必要な情報もアプリケーション数だけ必要になる。 本人確認の結果だけが分かればいいなら認証をどこか別でおこなって結果を受け取ればいい。ではどこで認証をおこない、どうやって… 続きを読む

上書き出来ないphp.iniの設定方法

PHPの設定はphp.ini、 httpd.conf、 .htaccessの順に読み込まれ変更可能なら新しい値で上書きされる。 どのレベルで上書き出来ないかはマニュアルのphp.iniディレクティブ参照。 php.iniディレクティブで書かれているものはPHPで決められているもので、別途httpd.confレベルで変更の可否が指定出来る(.htaccessで変更出来ない)。 httpd.confの… 続きを読む

Debian4.0へQmailをインストールするには

Debianは標準でEximというMTAが入っているが、日本では余り馴染みが無くPostfixやQmailを使う事が多い。 DebianはQmailのバイナリパッケージが用意されていないのでソースパッケージからインストールを行う(DebianのポリシーにQmaiのライセンス形態が合わなかったらしく用意されていない)。 以下Debian4.0にQmailのインストール方法 eximアンインストール … 続きを読む

JavaScriptでonKey~関連のイベントハンドラ使用時の注意

JavaScriptでonkey~系のイベントハンドラを使いその操作をマウスを使っても行える場合、忘れずその処理も加えるという事。 onClickでの処理にショートカットとしてonKey系の処理を付け加えた場合などはそんなに忘れる事も無いが、最近では良くあるフォームの入力中に送信可否を出したり文字数計算やらをする場合に忘れがち。onKeyupでフォームにキーボードからの入力は拾えても、マウスのみの… 続きを読む

Zend Framework – Zend_Mailのドキュメントの間違い

Zend_MailのSMTPによるメール送信で単一コネクションで複数のメールを送信する場合のマニュアルが間違えているので注意。確認したVersionと箇所は以下。 ZendFramework1.0.2 21.3. SMTP 接続による複数のメールの送信 「例 21.4. SMTP 雪像による複数のメールの送信」によると以下の様に書かれている。 require_once ‘Zend/Mail.php… 続きを読む

Zend FrameworkのViewをSmartyに変更するには

標準のZend Viewより使い慣れたSmartyを使いたかったので差し替えてみることに。 Zend Framework: Document – 35.3.2. 別のテンプレートシステムの使用の項目だけだとSmartyは呼び出せても実際どうやってControllerに組み込むの?となってしまう。 とりあえずControllerのViewを差し替えてみるかと思いZend_Controller_Act… 続きを読む

PEAR::MDB2_Driver_mysqliとSJIS

PEAR::MDB2のmysqliドライバを使用してキャラクタセットにSJISを使う時の注意。 SET NAMES sjis; 上記SQLの発行だけだと(cp932でも)プレースホルダのエスケープが上手く行われない場合がある。問題が起こるのはプレースホルダの引数に渡した文字の最終文字が特定の文字の場合。 以下の文字が該当し共通点は2バイト目が0×5c(ASCIIコードのに該当)なのでSQLのエスケ… 続きを読む

Zend Frameworkで遊んでみる

自分用にコンディションシート的なものをZendFrameworkで作ろうと思い入れてみた。少し業務で使った事もあるけどSVNチェックアウト→OK!!な 状態だったので一からセットアップ。 一通りディレクトリ作ってphp.iniにパス通して HelloWorld!!させてみる。問題無し。StaticなURLのルーティングを確かめる、以下が想定。 http://example.com/login Co… 続きを読む

ほぼ年齢の計算式

年齢の計算式は良く使う。 MySQLはマニュアルにも書いてあるけど。 SELECT (YEAR(CURDATE())-YEAR(`birth`)) – (RIGHT(CURDATE(), 5) > RIGHT(`birth`, 5)) AS `age` プログラムで書く場合 ((現在日時-生年月日)/10000) 切り上げ $birth = 19830221; echo (int) ((da… 続きを読む