先週、とある大学のサイトの資料請求フォームの案件が突然舞い込み、対応に追われる。
現地に行き、打ち合わせし(半日つぶれる)、実際のフォーム制作(まぁ、半日くらい)、で、本日、納品に行ってきたのだが、、やはりいろいろ問題がでた。
その対応などをメモっておく。
事前に現場のサーバの環境などは一通り聞いていたのだが、100%同じ環境でテストはできない状態で、スクリプトの納品だったので、(当然、ローカルに疑似環境は構築していたけど)、やはりもろもろと問題があった。
まず、現場のサーバでは、mb_string系がインストールされてなかった。当然、mb_xxxx関数が未定義のエラーとなる。(現場のサーバはWindows Server)
これは結構焦った。フォームの入力を、半角→全角や、かな→カナへ変換してるので、mb_stringがないとまったく動かない。perl互換のjcodeのphp版を入れようかともおもったが、修正してる時間がない。
たしか、海外系のサーバを使ってる時などmb_stringがインストールされてない状況もあり得るので、そんな時に使うmb_stringのエミュレータのライブラリがあったはずだーと思い、すぐググってみる。
発見。
SourceForge.jp: Project Info - mbstringエミュレータ
ダウンロードして、include_pathが通ってるところに入れ、ソース中でrequire_onceする。
ふー。mb系の関数が動くようになった。
・・・と思ったら、今度はセッション系の関数がWarning連発。
/tmpに書き込めないという内容。がーん。いままで全然セッション使ってなかったらしく、まったくセットアップされてなかった。
Cドライブにc:\tmpディレクトリを作るが、変わらず。なんでだろーとおもったら、ApacheのDocumentRootのあるパスが、Dドライブだったので、D:\tmpディレクトリを作り、事なきをえる。
ふー。まさかmb_stringが使えないとか、セッションが動いてないとはまったく思ってなかったのでけっこう焦ったけれど、まぁまだ対応は簡単なほうかな。
原因不明でapacheがsegmentation faultとかなってたら、本当に冷や汗ものだけど。
USBメモリにSakura Editorを入れていったのが本当に役にたった。
まぁ、そんな感じ。