• 締切済み

フォームデータの処理について

フォームで入力された FORM{'deny'} = アホ バカ http ←半角空白で区切り というデータを受け取ったら、それをdeny.cgiへ @deny=('アホ','バカ','http'); という形で記録したいとおもっています。 そこで、 $setfile = "./deny.cgi"; open(IN,"$setfile") || &error("システムエラー","ファイル「$setfile」を開くことができません。"); @data = <IN>; close(IN); $maxdate = 1; if ($maxdate ne "") { while ($maxdate <= @data) { pop(@data); } } unshift (@data,\@deny=\('$FORM{'deny'}';\n"); と書いてみたものの、これでは deny.cgiに@deny=('アホ バカ http'); と記録されてしまいます。 そこで@deny =join('\',\'',$FORM{'deny'});を追加記述してみたのdすが まったくうまくいきません。 どうしたら良いのかご教授ください。 どうかよろしくお願いいたします。

みんなの回答

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

なんだか質問で提示されたコードにtypoが多くて 回答にも自信が持てませんが @deny = qw(アホ バカ http); このようにdeny.cgiに書き込むほうが楽そう。 unshift ( @data , '@deny = qw('. $FORM{'deny'} .');' ); で、どうでしょう。 qwについては http://pub.ne.jp/wakapon/?entry_id=440238 こちらを参考に。

masa-25
質問者

お礼

本当はポイントを付与させていただきたかったのですが、 操作ミスで付与し忘れてしまいました。 せっかく親切にお教えくださったのに 大変申し訳ございません。お許しください。

masa-25
質問者

補足

回答どうもありがとうございます。 今、早速やってみたところ、うまく稼働しました。 ご親切にお教えくださり、どうもありがとうございます。

関連するQ&A