dポイントプレゼントキャンペーン実施中!

perl初心者です。
perlでデータ検索の機能をHPにつけようとしています。以下のようなスクリプトを書いたのですが、どうもうまく動かず「失敗」という風に表記されます。フォームのテキストボックスに値が入っている場合はサブルーチンを走らせその値でDB検索するようにしたいのですが、値を入れて検索ボタンを押しても動きません。たぶんif文のところの書き方が間違っていると思うのですがわかりません。。どなたかご教授おねがいします。
#!/usr/bin/perl
use DBI;
print "Content-type: text/html\;charset=shift_jis\n\n";
print <<"__HTML__";
<html><head><title>test</title></head>
<body>
<form method= "post" action="test.cgi">
商品検索<input type="text" name="search" size="30">
<input type="submit" value="検索"></form>
__HTML__

if($form{'search'}){&SearchMySQL;}
else
{
print "失敗";
}
print<<"__HTMLEND__";
</table>
</body></html>
__HTMLEND__
exit;

sub SearchMySQL{
DB検索
}

A 回答 (1件)

> たぶんif文のところの書き方が間違っていると思うのですが



if文以前に連想配列formのsearch($form{'search'})に値が入ってないのでは?
提示されたソースを見た限り、ブラウザから受けたフォームからのデータをデコードして連想配列に代入する処理がないようですけど・・・。
    • good
    • 0
この回答へのお礼

アドバイスいただいた事を本や他のwebページを参考にして原因がわかりました。
デコード文の内容はまだ初心者なのでわからないところがたくさんありましたが、うまく走らせることができました。また、急いでいたため他のwebページにも同じような質問をしてしまいましたが、もしEtherskyさんがご覧になってお気を悪くされていたら申し訳なく思います。
本当にありがとうございました。

お礼日時:2005/05/04 23:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!