Prev / Next / /home/pochi/ChangeLog

PHP + MySQL + PEAR + Smarty によるウェブアプリケーション作成[computer][JANOG]

2006-10-04

プログラムの投票用ページを作った。
プログラム書きって楽しいよなあ。

メモを吐き出し。

○ソフトウェアインストール
ソフトウェアは ports でインストールする。
そのほうがアップデートが楽だしね。

PHP は lang/php* から入れること。
CLI もインストールしないと PEAR がインストールできない。
www/mod_php* を入れてて、CLI が入ってないような時は、
一旦削除してから lang/php* を入れる、と。

Smarty のインストール

cd /usr/ports/www/smarty
make install


PEAR は必要なものを必要に応じて。

cd /usr/ports/devel/pear
make install

cd /usr/ports/security/pear-Auth
make install

cd /usr/ports/databases/pear-DB
make install

cd /usr/ports/devel/pear-HTML_Common
make install

cd /usr/ports/devel/pear-HTML_QuickForm
make install


PHP にライブラリの場所を教える

vi /usr/local/etc/php.ini
===
include_path = ".:/usr/local/share/pear:/usr/local/share/pear/PEAR:/usr/local/share/smarty"



○データベースを作成

mysqladmin --user=root create <データベース名>
mysql <データベース名> < <テーブル定義>


mysql --user=root mysql
---
grant all on <データベース名>.* to <ユーザ名>@localhost identified by "パスワード";
flush privileges;
exit


ネットワークごしにアクセスさせたい場合は以下も。

grant all on <データベース名>.* to <ユーザ名>@'172.16.0.0/255.255.255.0' identified by "パスワード";


実際にテーブルを作ったりするのは、MySQL Administrator の
ようなGUIツールを使うのが楽。

MySQL Administrator
http://www.mysql.com/products/tools/administrator/

文字コードは utf8 にしておくのが無難。
Table Engine も InnoDB で良いでしょ。

そうやって作ったテーブル定義は、

mysqldump -d データベース名


で吐き出しておく。


MySQL の本は手元に一冊ぐらい置いておいたほうが良い。
ある程度理解してて、具体的なコマンドをすぐに知りたい、
というのであれば、ウェブの方が便利かも。
検索できるし。
以下のサイトは便利だった。

MySQL クイックリファレンス
http://www.bitscope.co.jp/tep/MySQL/quickMySQL.html

MySQL について、中身とか、もっともっと詳しく知りたければ
以下の新刊でも買えー、と。

超・極める!MySQL


○PEAR のドキュメント
プログラムを作るにあたっていろいろドキュメントを探したけど、
結局は配布元のマニュアルが一番参考になった。
サンプルも充実してるので、ここだけで充分。

配布元サイト
http://pear.php.net/

配布元サイトのマニュアル
http://pear.php.net/manual/index.php


○Smarty のドキュメント
これも配布元のマニュアルが参考になる。

配布元サイト
http://smarty.php.net/
http://smarty.php.net/docs.php

日本語に翻訳してくれてる方もいて、時間短縮をするなら、
翻訳を読んでから本家にあたる、というのが良いかも。

Smarty マニュアルの日本語翻訳(リンク集にもなっている)
http://sky.freespace.jp/smarty/


○PHP のデバッグ
print_r が超便利。


○文字コード
UTF-8 にしとけば問題が少ない。
EUC とかで書いたものがあれば、nkf で変換しちゃう。

nkf -Ew --overwrite **/*


とかで一気に変換できる。
でも、変換をミスることがあるので、
バックアップは「絶対」取っておくこと。

せっかくなので、UTF-8 生活に切り換えるぜ、
と思ったら、以下のサイトとかを参考に。

いやなブログ: UTF-8 への移行計画
http://0xcc.net/blog/archives/000041.html


○セキュリティに配慮すべし
PHP は、何も考えずに書くと、ものすごく
セキュリティに甘く書けちゃう。

- 細心の注意をはらう
- ちゃんと勉強をする、
- ライブラリを活用する

というのが基本。
SQL インジェクションなんかを避けるためには、
外部由来の文字列には、PEAR の DB モジュールにある
quoteSmart を使って

$db = & DB :: connect( $dsn );
$user_id = $db->quoteSmart( $_POST["input_userid"] );
$pass = $db->quoteSmart( $_POST["input_password"]);


のように処理してやる、と。

Referrer (Inside): [2006-12-12-5] [2006-10-24-13]

permlink