WAMP初挑戦

Windows+Apache+MySQL+PHPで作られているという社内(?)のシステムのUNIX系OSへの移行作業とその後のメンテを押し付けられ命じられたので中を覗いてみる。
PHPは使ったことがないんだがなー。
DBを軽く見てみると

  • テーブル数個のうち半分くらいしか使ってない
  • 何もかもコード化されていなくて,ユーザやグループをはじめとする名称がそのままキーになっている。
  • 一人のユーザに対応するグループが10個分用意されている。正規化されてない。
  • コンテンツを保持するひとつの項目にplain textとhtmlが混在していて判別のための項目はない。
  • たまに情報がDB内ではなく公開ディレクトリに無造作に置かれたテキストファイルに入ってる。
  • フィールド名の綴りがいろいろ間違っている。

PHPの方を見てみると

  • オブジェクト指向ではなく,別ファイルになっている関数群をまとめたものを require する形式。
  • 関数群をまとめたファイルというのが,ディレクトリ毎に同じ名前の別ファイルとして存在していて,同じ関数が定義してあるが中身が少しずつ違う。
  • 同じような手続きがあちこちにある。
  • 組み込み関数の呼び出し方がいろいろ間違っている。
  • ほとんどのデータを登録・修正・削除するインタフェースがない。
  • 入力値に対するチェックがない。
  • 単純に文字列連結でSQL文を作っている。
  • HTMLのエスケープはほとんどやってない。SQLに追加される文字列のエスケープはまったくやってない。
  • 使ってない(作りかけ)のファイルが多数。

など。
さて,どうやって捨てさせるか…。

POSTされる文字列のencoding問題

掲示板などをはじめ,フォームから日本語を入力してsubmitしてサーバ側で処理をさせるような処理を行う場合,大昔のWebブラウザは日本語化が無理矢理だったりした関係で,ブラウザによってPOSTされる文字列のencodingがまちまちだった。このため,多くのブラウザに対応するとなると,受け取る側は自動判定をはじめ小技がいろいろ必要だった。
例えば任意の文字列のEUC-JP/Shift_JISの自動判別を完全に行うことは不可能である。ここでhiddenで適当な文字列を埋め込んで,その文字列を使ってencodingを調べるといった方法もあったが,hiddenと通常の入力フォームでそれぞれ違うencodingで送るブラウザもあったり。User-Agentを見て判定の優先順位を変えるとか涙ぐましい努力をしているものもあったが,新しいブラウザがまた違うパターンだったりしてぶち壊しだったり。
最近のWebブラウザだとだいたいフォームのHTMLのcharsetと同じものを用いるので,下手に自動判定等はしない方がいいようである。
ところで,最近のWebブラウザは英語や日本語以外の多言語を取り扱うことができる。EUC-JPで書かれたHTMLのフォームにEUC-JPにはない(ASCIIにもJISX0208にもない)文字を書くとどうなるか。

“POSTされる文字列のencoding問題” の続きを読む

メール大増殖

仕事用のメールボックス開けたら未読6600通。
何事かと思ったら,職場のメールサーバがメールを増殖させてるらしい。
出張に出た直後くらいから増殖を初めて,丸3日以上放置。
誰か気づけよ。
というか現在進行形で増殖中…。

それPla

某大学情報系学部・卒業研究発表会想定ツッコミ
「~~という背景で~~を目的とした~~システムを構築しました」
「それPlaggerでできるよ」

京都第2タワーホテル

京都タワーと方角違うやん!
第2タワーなんてないやん!
騙された!!
…というわけではないです。
部屋は良かったデス。
この時期の京都のホテルは大混雑ということで,
明日は宿無し。

出張

今晩: 東京泊
明日: 福岡泊
明後日: 京都泊
明々後日: 車中泊(京都~東京間)
その翌朝: そのまま出勤

冬到来

白いものが降ってた…。
気温は1℃(20時頃・車の温度計)

SNS祭

Web情報収集していて「続きはこちらで連載しています」とか,以前から利用していたページのリニューアルのお知らせとか,辿っていくとどれもSNSになってたり。
興味があるものは登録してみたけれど,激しく使わない予感。