Monthly Archives: 12月 2007 - Page 2

PHPからsyslog を駆使。

syslog を使って PHP アプリケーションを改善し、デバッグする

[php]



syslog(LOG_NOTICE, "{$_SERVER['REMOTE_ADDR']}: test.php - PHP Index page accessed.");
echo '

PHP Test Page

‘;
?>


[/php]

ロギングした後でそれを利用するのが難しかったりはするのですが。
そういえば今日発売のSoftware Design 2008年 01月号 はちょうどロギングの話でしたね。syslog-ngについて詳しく書いてあったので明日買ってみるかな。。

スクリプトインジェクションを防ぐ10のTips

なぜPHPアプリにセキュリティホールが多いのか?:第11回 スクリプトインジェクションを防ぐ10のTips|gihyo.jp … 技術評論社

ユーザデータを出力する時は特に気を使います。

入力された文字にmb_check_encodingをして想定外の文字コードだった場合は弾く、というのはなかなか取り入れている方も少ないのでは、と思います。それは私です。気をつけましょう。

PIDファイルを利用してスクリプトの多重起動を抑制する

PHP で PIDファイルを利用する | Xlune::Blog

スクリプトの多重起動を自分自身のプロセスIDで多重起動を抑制しようというアイデアです。多重起動されると厄介なスクリプトに活用したいです。

メールの添付ファイルの取得

[PHP-users 28548] Re: メールの添付ファイルの取得

メールでサーバにアップとか、あったらいいな機能ですよね。いつか参考にするためのメモ。

空メールによる自動返信機能

空メールによる自動返信機能をつけたいのですが・・ – PHPプロ!Q&A掲示板

パイプで渡してからのスクリプトも書いてありますので、参考になるかと思います。というか

[php]
//メールソースを標準入力から読み込み
$source = file_get_contents(“php://stdin”);
if(!$source) {
exit(); // 読み込み失敗
}
[/php]

キモはここですかね。標準出力からデータを取得する。

Smarty でvar_dumpとかprint_rのようにdump

Smarty でvar_dumpとかprint_rみたいに。 (こまちドーナツ)

[php]
{$array|@debug_print_var}
[/php]

ふむふむ。これは便利ですね。でもちょっと表示数が少ないような気もしますが。

PEAR::Pager で Digg っぽいページャを作る

cl.pocari.org – PEAR::Pager で Digg っぽいページャを作る

DiggのPagerといえば

digg_pager.png

これ。かっこいいですね。結構簡単に出来ますので、取り入れたい方は是非。

akiyanさん、CakePHP勉強会発表資料をZend Frameworkerが見る

CakePHP勉強会を開催しました! & 発表資料です : akiyan.com

私自身はCake使いではなく、今のところZend Frameworkerなのですが、そんな私が見てもとても勉強になる内容でした。

Zend_Db_Tableでfetchメソッドに検索条件を渡すとき、

[php]
$where = array(
‘status = ?’ => ‘active’,
‘confirmed_email = ?’ => ‘yes’,
);
$us = $users->fetchAll($where);
[/php]

なんて指定しますが、コントローラでこんなことしなくないな、と思った時どうするか?

普通によくやるのは、モデルのメソッドに組み込んじゃう、

[php]
class Users extends Zend_Db_Table_Abstract
{
public function getActiveUser()
{
retrurn $this->fetchAll(array(
‘status = ?’ => ‘active’,
‘confirmed_email = ?’ => ‘yes’,
));
}
}

//…

$us = $users->getActiveUser();
[/php]

こういう形で作ってしまいがちですが、じゃあ検索条件が増えた場合どうするんだっけ?とかorderやlimitを指定したい時はどうするんだっけ?というようなことを解説されています。
$whereにor条件などはZend Frameworkにそのまま持ってくることはできませんが、色々と参考になりますので是非拝読されることをオススメします!

こういう勉強会の資料を公表していただけるのは本当にありがたいですね。。

objectにキャストする

配列をobjectにキャストする – Do You PHP はてな

[php]
(int) $string
[/php]
とかのキャストですが、objectにもできちゃうんですね。

[php]
(object)$arr;
[/php]

知らなかったです。
マニュアルには

配列がオブジェクトに変換される場合、配列のキーがプロパティ名となり、 配列の値がプロパティの値となります。他の値の場合、 scalar という名前のメンバ変数が値を格納します。

こうあります。使う時がくる、、か?

会員制ログインスクリプト「PHPLogin」

会員制ログイン機能を簡単に付加するスクリプト「PHPLogin」 – GIGAZINE
ログインもまともに作ると面倒ですから、こういったライブラリがあると楽&安心です、、が

無料版は20ユーザーまでという制限があります。ちなみに有料版だとユーザー数が無制限で、価格は29ドル。

とのことなので、試しに使ってみてよほどよければ、、という感じでしょうか。という感じになってしまいます。すいません。