CGI-BBS > 基礎 > その他 > メールアドレス入力でのエラー表示について


カレッヂ
カレッヂ


質問者 極超初心者  投稿日 2/19(水) 17:12:49
いつもお世話になっている極超初心者です。
またまた超初心者的な質問です。

WEBの入力フォームからメールアドレスを入力したデータにて、@マークがない場合エラー画面を表示させたいと思います。
以下のように組んでみましたが、サーバーエラーを起してしまいます。

if( !( $personal{'email'} =~ /\@/ ) ) {
error_madd(); 
exit;
}

if文の!を削除すると、サーバーエラーを起しませんが、この部分が作動せず、メールアドレスに@マークがなくてもエラー画面が表示されません。
これはどこが悪いのでしょうか?

毎度毎度で大変申し訳ございませんが、教えていただけないでしょうか?

宜しくお願い致します。

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

回答者 しあわせのツボ  [削除]  投稿日 2/19(水) 20:25:55
if($personal{'email'} !~ /\@/)
もしくは
unless($personal{'email'} =~ /\@/)
にするとどうでしょう。
質問者 極超初心者  [削除]  投稿日 2/20(木) 09:39:56
しあわせのツボさん、毎度毎度ありがとうございます。深く感謝です。

早速unless($personal{'email'} =~ /\@/)にして、実行してみました。
するとおかげさまで、@マークが入った状態では、サーバーエラーを起さずに確認画面に行くようになりました。
しかし、@マークが入っていない場合では、相変わらずサーバーエラーを起してしまいます。
@マークが入っていない状態では、エラー表示画面error_madd(HTMLで記入)を表示したいのですが、どうすればよろしいでしょうか?

質問ばかりで大変申し訳ございませんが、ご回答いただけませんか?

宜しくお願い致します。
回答者 しあわせのツボ  [削除]  投稿日 2/20(木) 13:56:10
条件分岐なしでerror_maddを呼び、正しく動作するかを見てください。
これでエラーが出るようなら、error_madd側の問題です。
質問者 極超初心者  [削除]  投稿日 2/20(木) 16:19:44
しあわせのツボさん。いつもいつも、早々にご回答いただき、誠にありがとうございます。深く感謝します。

アドバイスいただいた通り、err_maddを再度チェックしました。
すると、print "Content-type: text/html\n\n";が抜けておりました。
追加したところ、正常に表示しました。
基本的な部分の間違いで、全くもってお恥ずかしい限りです。お騒がせして失礼致しました。

今後も迷惑な質問をするかもしれません。
大変申し訳ございませんが、宜しくお願い致します。

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


Web裏技