記事一覧
session.cache_limiter
現在、PHPプログラムを実行させる場合、.htaccessに以下の内容を記述しています。
ここに session.cache_limiter の設定も加えようか考え中。
PHPのデフォルト設定はキャッシュを全然利用しないようなのですが、それによって、ページを移動するとフォームの入力内容が確実にクリアされます。
つまり、入力エラーがあったときなど、ブラウザの「戻る」で戻っても入力内容は残っていません。
キャッシュを利用できるようにするには、.htaccessに
php_value session.cache_limiter noneを追加しておけばOKです。(.htaccess以外でも制御できるけど。)
ただ、代わりに「掲示板などで記事を投稿しても、ページの再読み込みをしないと投稿が反映されない」という状態になる可能性があります。一長一短。
Perlで普通にプログラムを作るとキャッシュが有効な状態になるので、キャッシュを利用できるようにしておいたうえで「キャッシュさせたくない場合、各々で.htaccessを編集してください」としておくのがいいかなぁ…。
ちなみにこのサイトでは、少し前から session.cache_limiter の設定を追加しています。何か問題が起きないか実験も兼ねて。
今のところ、特に問題は無いっぽい。むしろキャッシュが有効な方が使いやすいかも。
春分の日
現在 Web Liberty と PHP Labo で配布しているプログラムは、祝日の設定が現在の法律に合っていない箇所があります。
で、少し前にも「春分の日の設定が間違っていますよー」とメッセージをいただきました。「春分の日も変わっていたのか…」と思いつつ、何日が正しいのか調べてみたら…
春分の日は、3月20日から3月21日ごろ。
ごろて。日は決まっていないのか…。(いまさら?)
1900年~2099年までの春分日の数学的な簡易な求め方も掲載されているけど、単純に条件分岐させていくしかないのかなぁ…。
追記
KENTさん作の Web Calen のコードを読んでみた。春分の日はもちろん、他の祝日も厳密に判定しているっぽい。流石だ。
大いに参考にさせていただきます。
データベース管理ツール作成中
データベースの管理ツールとしては phpMyAdmin や SQLiteManager が有名だと思うけど、もっと簡易なツールを作成中。
データを少し編集したいとき、これらのツールをアップロードするのは面倒です。でも、SQLを送りつけるミニプログラムを毎回自作するのも十分に面倒なのです。
phpminiadmin は結構いい感じなのですが、データの編集時にSQLを直接入力するのは面倒すぎます…。
…という訳で、
- MySQLとSQLiteに対応したデータベース管理ツール
- 基本的にはphpminiadminのようなインターフェイス
- データの登録&編集はフォームから可能
- その他、(自分が)よく使う機能はSQLを直接入力しなくても操作できるように
- プログラムファイルは1つで、サイズは数十KBに収まるくらい
というツールを作成中。現在、半分くらいは作れた。
でも、データ編集機能の実装が非常に面倒なので、ちょっと嫌になりそう…。
サイトデザイン変更
一応完了。相変わらず地味デザインです…。
デザインだけでなく、機能面も色々いじっています。時系列以外に記事を投稿するツールやブックマークを管理するツールなども、自作ツールを設置しておいた。
これでようやく、雑記ツール変更前と同じ感覚で使えます。(^^)
あとは使いながら調整していくとします。
もう一度しぃペインターのテスト

キャッシュの制御はどうにもならなかったので、PCHファイルの名前を、編集するたびに変更するようにしてみた。
これでしばらく使ってみるとします。
mod_rewrite
この雑記帳は http://www.favorite-labo.org/ からアクセスできますが、プログラム自体は http://www.favorite-labo.org/blog/index.php にあり、実は公開ディレクトリ直下にプログラムはありません。
また、http://www.favorite-labo.org/diary.cgi にアクセスすると以前の雑記が表示されますが、プログラム自体は http://www.favorite-labo.org/archives/archives.cgi にあり、diary.cgi というファイルは存在していません。
これらは mod_rewrite を利用することにより、URLを書き換えています。具体的には、公開ディレクトリ直下の.htaccessに、以下の内容を記述しています。
RewriteEngine On
RewriteRule ^$ blog/ [L]
RewriteRule ^diary.cgi(.*)$ archives/archives.cgi$1 [L]各行の意味は以下のとおり。
- 1行目
- mod_rewrite を有効にしています。
- 2行目
- 「何の文字列も与えられずに公開ディレクトリ直下にアクセスすれば、
blog/を表示する。」としています。 - 3行目
- 「
diary.cgiから始まる文字列が与えられて公開ディレクトリ直下にアクセスすれば、archives/archives.cgiを表示する。その際、diary.cgiに引数が渡されていれば、その内容をarchives/archives.cgiに渡す。」としています。
また、[L] は「条件にマッチすれば、以下に続く処理を行わない」という意味。
正規表現が少し解れば、ページにアクセスするためのURLを自由に操作できそうです。便利。
…と言いつつ、まだ最低限の知識しか仕入れていないので要勉強です。
しぃペインターのテスト

しぃペインターのテストを兼ねてイラスト投稿。
キャッシュが強力なのか、イラストを途中保存してから再度しぃペインターに表示させると、直前に描いた内容が反映されない…。
ブラウザを再起動すればOKだけど、ちょっと面倒。何が原因なんだろう…。
まあ、調査はそのうちに。
それはともかく、これくらいの大きさで、これくらいの線の太さで、ラフなイラストを描くのは楽しいかもしれない。たまたまスムーズに描けただけかもしれないけど。
気が向いたときに、こんなイラストを描いていくとします。(と言いつつ、滅多に描かないのでなかなか上達もしない…。)
しぃペインター + mod_rewrite
このブログにしぃペインターを導入しようとしたのですが、何故かイラスト描画画面が表示されませんでした…。
色々調べたところ、どうやらmod_rewriteの設定が原因になっているみたい。
PHP Blog 付属の.htaccessに
RewriteRule (.*) index.php/$1という行がありますが、この処理が実行されるとイラスト描画画面が表示できないみたい。
なぜこの行がダメなのかは不明…もしかしたらサーバー依存の問題なのかもしれないし、全然違う箇所の影響を受けているのかもしれないし…。
半日ほど悩んだ挙句、以下のように変更すると描画画面が表示されました。
RewriteRule ^([^\.]*)$ index.php/$1「URLに . が含まれていれば処理しない」というように変更しています。index.php が直接呼ばれた場合はURLの書き換えは不要なので、何も処理を行わないように…という意味。
ただ、根本的な解決ではないので、また詳しく調べてみます。そのうちmod_rewriteの文法を基礎から勉強しよう…。
プラグイン導入
この雑記帳に以下のプラグインを導入。
プラグインで機能追加していく仕組みは、導入が面倒といえば面倒だけど、自分仕様のツールが作れていいかも。
携帯からの閲覧&投稿に対応させるプラグインや、しぃペインターから投稿するためのプラグインなども作ってあるので、また後日導入するとします。
今回導入したテキスト整形プラグインははてな記法もどきが利用できるプラグインですが、少し前に「続きを読む機能」や「ネタバレ非表示機能」などに使える記法を追加してみた。
ネタバレな内容を書くときに便利かもしれません。
リンクをクリックすると、非表示になっていたテキストが表示されます。(要JavaScript。)
ただ、JavaScriptがOFFの環境に対応するためのコードが気に入らないので、今後も改良予定。導入の敷居を考えなければ、手段は色々あるのですがねぇ…。