Diary
twitterもはじめました
ということで,ちまちま組んでいた日記PHPがようやく形になりました
ああ,長かったなぁ…。きれいに組もうと思って,考えている時間が長すぎた。 そして結局,きれいに組むってことがなんだかよくわかんなくなり, いつも通り,行き当たりばったりコーディングをすることで,システムをなんとか作り上げることができたのです。
PHPのプログラミングの難しさ,というか,一般的なC/C++アプリの作り方と違うのは,ページ遷移の有無だと思う。
ページ遷移が起こると,またクラスのインスタンスやらなにやら全部やり直しになって,しかも前と通るパスが異なるので, どうやってそれらの情報をスマートにやりとりするのかがよくわからない。 どんなのがセオリーなんだろうか…。 ページ遷移のない一般的なプログラミングのように,関数の引数などで情報を渡すことができればどんなに楽なんだろうか…
人のソース参考にしろよとか思う。でも,相変わらず他人のソースを読まずにやっているという…
さて,新しい日記システムの特徴・新機能ですが
- 以前の日記PHPのURIの完全互換
- 以前のシステムの倍速い
- 日記のタイトルがページのタイトルに反映
- コメント投稿者の名前がCookieで保存可能
- コメント投稿時のプレビュー
- 利用者による投稿したコメントの修正・削除
- タグによる日記のフィルタリング
- 日記投稿時のプレビュー
- 日記の一時保存
- 日記の編集メモ
- 管理人によるコメントの修正・削除
- パスワードの暗号化
…くらいか。 苦労した割に大した機能がねーな(ぉ
パスワードの暗号化についてちょっと説明。 今回のシステムでは,コメント投稿するときにパスワードが設定できて, それを元にコメントの修正・削除の認証を行うわけだけども, パスワードはコメント投稿時に復号が非常に困難な(並のシステムでは復号できない)暗号によって暗号化され, 暗号化されたままファイルに保存し,同じく暗号化されたまま認証を行うので, 管理人にも元の平文パスワードはバレませんので,安心してください。 かといって,あんまり重要なところで使っているようなパスワードと同じものを設定しても責任は持てませんが…
あと,タグによるフィルタリングについても。
実は,複数のタグを条件に入れられたり,ある特定のタグを含まないようなフィルタリング,
そしてその両方をあわせたフィルタリング指定がプログラム的にはできるようになっているんだけど,
ユーザインタフェース作るのが面倒くさくて,半分死んでる(ぉ
指定方法は,tag=Linux:Programming:-Computer
みたいな感じでURIに入れる。
この場合は,タグにLinuxかProgrammingが含まれていて,Computerが含まれていない日記だけを表示しろ的な。
こんなんもできるんだけど…できるんだけどUI作るのダルい。
しかし疲れた…。ページ遷移の伴うプログラミングはもうあんまりやりたくないです…orz
あと,ShiftJIS向けのももうやりたくないです…。
ページ遷移のたびにstripslashes()
関数を呼ばなければならなかったり,
HTMLタグが含まれてはいけない文字列を修正しても,これもページ遷移のたびに修正しなければならなかったり…。
ページ遷移によっては,含まれてはいけない文字列が異なったり…。
開発モチベーションの低下の主な原因は,ここら辺の文字列処理にあります。間違いない。
ああ,あと,今まであった「あ〜ん」規制が無くなってたり,ホスト規制をつける予定だったけど,面倒になってつけてなかったりするけど,おいおい何とかします。 もう,フルスクラッチでシステムは作りたくねーなぁ…
別の言語だったら,やってみても良いかな(ぉ PerlかRubyか…まぁそのうち考えます。
ああ,ちなみに,新しい日記PHPは2400行くらいです。たいしたことねーのに,やたら時間がかかる謎。とりあえず,一通り試験はやったけど, バグがつぶし切れてないかもしれないので,使っていくうちにバグ発見できたらな,と思います。
今回は,プログラムとHTMLの表示関係の分離がかなりできてるから,
カスタマイズも楽だと思うよ。
完成版(?)期待age。
Blogと併用は面倒だし、FC2死んだら俺も死ぬしw
そのためには、今のページ全部再構築だな。。HIROに頼(ry
日記システムは,PerlとかRubyでもあったりするのでそっちを検討してみたらどうじゃろか。
tDiaryとか。
簡単なものならinput hiddenに値ぶち込んでまた受け取って…とかやれるけど。
ソースくれよ(ぉ
UIちゃんとやってからな(゜∀゜ )