高森太郎の日記。

高森太郎の日記です。

CGI作るときに失敗したこといくつか。

 CGIを作成するときに失敗したことをいくつかメモする。作成言語はRubyだが、それはとりあえず関係なさげな部分。

 たとえば、単純な構文エラーというのが一番多いが、ここはたいしたことではない。そこは自分で対処すればいいのだが、論理エラーと言うのがきつい。

 一番最初に作成したとき。

data = cgi.parms["data"][0]
data2 = cgi.parms["data2"][0]
str = String.new
str = data
str.concat(data2)

 というのをやったら、動かない。なんじゃこりゃ、と思いエラーを見てみると、string.concatというのは、変数に何も入っていない(この場合dataになにもはいっていない)と、エラーになるとか。 え? 当たり前?いや、そりゃあそうなですが……(汗

 それから文字コードも。とりあえず改行をHTMLエンコード、つまりbrタグにして記録することにしたのだが、ここがうまくいかない。ご想像のとおり改行コードの違いによるものだったのだけれど……。 え? これも超当たり前ですか? ……そりゃあそうですね……(大汗

 ですがこれも何とかなりました。普通に判定してやればいいわけですし。
 ですが……それ以上に参ったのが、謎のエラー。

 ローカルのテスト環境では完全に動作しているのに、転送したら500エラーで全くうんともすんとも言わない、というのがまいった。
 よくみると、サーバに転送したら容量が三倍とかになっているという(汗 いったいなぜこんなことがおこっているのかが判らないが、データの転送途中でなんぞおかしいらしい。
 再度転送して容量を一致させてもだめ、一度消してやり直してもだめ。しょうがないので全くスクリプトを変えずに名前だけ代えてアップロードしたら……動きました……なんで?
 あれれ?

 原因は良く分からないままですが(汗 うーん。とりあえず動いたのでまぁ言いかと思うのですが……どうも、気持ちが悪いというか……なんでだろ。とりあえずメモしておく。
 引き続き、次。