「ちょっとしたWebアプリ作ってるんだが、なんかどこかでキャッシュ利いてしまって想定外の動きをするっぽいんだけどどしたらいい?」というよくあるFAQ。 まずは Cache-Control: private のヘッダをつける。以上。 PHPの場合: header("Cache-Control: private"); Java/JSPの場合: <%response.addHeader("Cache-Control","private");%> HTTP/1.0のためにPragma: no-cache もつけるべきだという古い話も聞くが正直こ...
去年の今頃書いた 画像もDBに格納して管理する -扱いがめんどうなLOB(ラージオブジェクト)は使わない方法も含め(2008/8)と、こないだのCoolなURLを作るには(2008/7)の記事は、URLの処理をちょこっと工夫してシアワセになろうよ、という点で共通している。ついでなのでまとめて続編みたいなことをしてみようかと。 まず、画像もDBに格納して管理するで紹介したmod_rewrite設定が実はお...
そのためにはメニューとコンテンツをそれぞれフレームにしたほうが 別々に編集できてしかも互いに干渉しないためメンテナンスしやすい そこで、フレームを使わずに上の2点を実現する方法のひとつを紹介しよう。 下のようなフレーム構成のページがあるとする。 これはPHPを使うと以下のような二つのファイルによって構成することができる。 (menu.phpとする) <a href=content1.php...
ruby言語の作者さんがまたなにか言っているが、「Webアプリケーションをなめるな」という話はどの言語で書いても同じはずだ。 Matzにっき(2008-01-26) 特に「PHPは初心者に学びやすい」という部分に共感する。 PHPは初心者に簡単かもしれないが、初心者による手を抜いたWebアプリケーションは PHPが作られた当初はともかく、現代では(セキュリティ的に弱いものができあがってしま...
ちょっと大き目のWebサイト=Web/APサーバが複数台あることが前提=をPHPで構築する場合、セッション情報を格納するストレージをどこにするか、という話。 まずはストレージの選択から。 ●NFS 実装が一番楽で、 PHP側では特別設定不要。 お手軽さではNo.1だろう。 しかし、過去の経験では一番ナシの方法だ。 問題になるのはガベージコレクション。 セッションの仕組みからして...
うん、うわさは本当だと思う。 「@」でエラー抑制すると PHP が遅くなるという噂について(a++ My RSS 管理人ブログ 2008/5) でもね、よく考えよう。100万回とか1000万回ループするfor文なんてものを書くのは実際の開発現場においてよくあることなんだろうか?(いやもちろん、実験だからそういう数値を使ってることは承知のうえで) Webシステムの画面として稼動するスクリプトにお...
日付を表現したい場合は YYYY-MM-DD たとえば 2008-05-16 時刻を表現したい場合は hh:mm:ss たとえば 11:25:30 日本時間であることをわかりやすく明記したい場合は 11:25:30+09:00 もちろんグリニッジ標準時からの時差がプラス9時間、の意。 (「JST」と書けとかUTCならZだとかそういう細かい話は省略。) 日付と時刻を両方表現したい場合は 2008-05-16T11:25:30+09:00 つまり日付と時刻をTでつなげる...
Webシステム&デザインの世界では「動的ページ、静的ページ」といった言葉がよく使われる。 近年流行っているSEO=Search Engine Optimization=検索エンジン最適化=において 動的、静的の違いによる影響が大きいことから、 最近ではエンジニアではない人の会話でもこの言葉が使われるようになってきた。 サーバーサイドWebプログラミングの心得があるたいていのプログラマー...
こんなコンテンツがあることはつい最近まで知らんかった。 開発基盤選定における考慮事項の例 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 こんなのに反応す...
最近、PHP言語のとある有名なライブラリにバグを見つけたのでレポートしたら、即座に修正版がリリースされた。 別に大したことではないのだが、ついでなので、オープンソースソフトというものの品質とその管理サイクルはこういうものなんだよという話をつらつらと。 PHP言語にはPEARと呼ばれるライブラリ群がある。perlでいうところのCPANにあたると思ってもらえばいい。Java...
プログラミング言語の優劣を語る=常に話が噛み合わない/話がずれる=宗教戦争にしかならない。これいつものこと。 読み手の国語力(読解力)に問題があるんだよとか言ったところで、どっちもどっち。それもまたこのテの話題におけるセオリー。 というあたりの話は「現実的に言って、PHPは死なないし消えもしないどころかますます普及する。」という半年ほど前に書い...
とあるブログでこんなPHPのコードが紹介されていた。PHPで書かれたWEBクローラー用クラスだ。 SourceForge.net: PHPCrawl いやな予感がしたので、ダウンロードしてざっと見て、ローカルで試してみた結論。 危険。わかってない人は使うな。 これは絨毯爆撃型のクローラーだ。 筆者が見た限り、このクラスにはリクエスト間隔を制御する仕組みが見当たらなかった。クロール全体におけ...