主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Zend Framework + QuickForm + Smarty

今まで mojavi 、 symfony と php のフレームワークを使ってきたわけだけど、今回 Zend Frameworkを使ってみて明らかに一番使い易かった(入りやすかった)ので、ちょっとそれについてまとめておこうかなと。
# Cake はソースコードを見た時点で使う気うせた。。

まあ zend がやってるってことで、少くてもやっておいて損は無いかと。とりあえず QuickForm と Smarty は手放せないので、その当たりを交えてうまいこと C-MVC を構築する方法のメモ。

環境
CentOS-5
php-5.1.6
Zend Framework-1.0.1
QuickForm2-1.4
Smarty-2.6.18


もっと読む

Smarty で変数の数を取得する

例えば
$myarr = array(1, 2, 3);
$smarty->assign("myarr", $myarr);
と php 側でやった場合、
{$myarr|@count}
で取得できる。

QuickForm で複数項目を必要とする custom validation rule の作成

HTML_QuickForm_Rule クラスを継承したクラスを定義し、その validate 関数を加工してやればできます。
よく使う年月日を別々のテキストボックスで入力させてチェックさせたい場合などを例にします。

class IsDateExist extends HTML_QuickForm_Rule {
	function validate($value) {

		for ($i = 0; $i <= 2; $i++) {
			if (! ereg ("^[0-9]+$", $value[$i])) {
				return false;
			}
		}
		return ( checkdate($value[1], $value[2], $value[0]) );
	}
}

PHP Smarty で文字列の連結をするには

|cat: を使ってやります。
例えば $str1 と $str2 をくっつけて間に "_" をいれて $str3 を連結したい場合を例にすると。

value = {$str1|cat:$str2|cat:"_"|cat:$str3}

PHP で BASIC 認証もどきを実装する

このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。

$signin = false;

if (isset ($_SERVER['PHP_AUTH_USER']) &&
    isset ($_SERVER['PHP_AUTH_PW']))
{
    if ($_SERVER['PHP_AUTH_USER'] == 'masaki' && 
        $_SERVER['PHP_AUTH_PW'] == 'password')
    {
        $signin = true;
    }
}

if (! $signin)
{
    header('WWW-Authenticate: Basic realm="Enjoi Blog"');
    header('HTTP/1.0 401 Unauthorized');
    print "Error 401";
    exit;
}

PHP の Session を複数ドメインで共有する

例えば www.enjoitech.jp と blog.enjoitech.jp でセッションを共有したい場合は、 php のコードの session_start () 関数の前に、 session_set_cookie_params() でクッキーの影響範囲を enjoitech.jp にしてやることができる。

session_set_cookie_params (0 , '/', 'enjoitech.jp');
もしくは php.ini で
session.cookie_domain "enjoitech.jp"
でも可能。

Smarty で年月日 drop down を簡単に作る

Smarty で年月日を表示するドロップダウンを作るには html_select_date というカスタム関数が便利。
これを使うといちいち select だ option だ、何日前を表示だ、とか考えなくてする。実際のコードはこんな感じ。

{html_select_date year_empty="-" month_empty="-" \
day_empty="-" prefix="start" start_year="-4" time=$start_time}

こうすると、ドロップダウンのトップ項目に - を含んだ 4 年前からのドロップダウンが生成され $start_time がデフォルト値になる。
prefix は name に start を付加させて startYear, startMonth とかなるような感じ。詳細は Smarty Documentation参照。

PHP を CGI として実行させ suExec

通常 PHP は Apache にモジュールとして取り込まれている。
これを cgi として動かしたいときには apache の設定ファイルに変更を加える必要がある。
PHP を cgi として動作させると、 suExec も有効にさせることができる。
ただしデメリットもあり、動作が若干遅くなる。
環境は以下のとおり。
CentOS-4.4
PHP-5.1.6


もっと読む

CentOS に PHP5 をインストールする

CentOS には RedHat クローンと呼ばれるほど、 RedHat に非常にそっくりな Linux OS 。
というか、 RedHat ES をベースに構築されてるらしい。
従って、 php なども古いバージョンが採用されたままだ。
しかし CentOS にはいくつかの Yum レポジトリが用意されており、その中の centosplus というレポジトリを使用すれば、 yum コマンド一発で php5 がインストールできる。

具体的には以下の /etc/yum.repos.d/ にある、 CentOS-Base.repo を書き換える。
もっと読む
ページ: | 1 | 2 |
フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google