プログラムの投票用ページを作った。
プログラム書きって楽しいよなあ。
メモを吐き出し。
○ソフトウェアインストール
ソフトウェアは 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"]);
のように処理してやる、と。