CGI-BBS > CGI > Perl > Perlの改造でif文での文字列の論理積が認識されない。


カレッヂ
カレッヂ


質問者 momo  投稿日 7/31(木) 18:17:50
アンケートのCGIを作成しています。
フォームへの入力チェックを行う際、テキストエリアで必須事項のチェックの文章があるのですが、
if ($name eq '') { &error('氏名を入力してください。',''); }
これはきちんと動作します。
この部分を改造して、ラジオボタンで選択して、その他を選ぶと横のテキストボックスへの入力を求めるようにしたいのです。
そして、
if ($media eq 'その他' && $other eq '') { &error('具体的例をお答えください。',''); }
とやってみたのですが、この部分は無視されているようです。Perl文法チェックにかけても何もひっかかりませんでした。
試しに、$media eq 'その他' を$media eq ''にしてみたらエラーメッセージが出るので、この文を理解しているようです。
論理積は文字列データのあるなしぐらいしか判別できないのでしょうか?
それともこのこの書き方自体が間違っているのでしょうか?
ご存知の方ご教示ください。
CGI初心者ですので、よろしくお願い致します。
 

プロバイダ参照:
サーバのOS:UNIXサーバ
パソコンのOS:WinNT系
エディタ:秀丸
FTPソフト:FFFTP
サーバ移転:していない
改造:している 改造前正常動作
CGI習熟度:beginner

回答者 domo  [削除]  投稿日 7/31(木) 21:09:30
>論理積は文字列データのあるなしぐらいしか判別できないのでしょうか?

$media = 'その他'; $other = '';
if ($media eq 'その他' && $other eq '') { &error('具体的例をお答えください。',''); }

で動作することは確認できますね。
ということは原因は他にあると思いますよ。

この行の前で $media、$other の値を追ってみるとおかしなところがあるのでは。

質問者 momo  [削除]  投稿日 8/25(月) 15:54:44
回答(ヒント)をありがとうございました。
順序を変えて別のところに移行したら動作するようになりました。

このページは終了したので返信(回答)は書きこめません
 


Web裏技