![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
「とほほのwww入門」さんのwwwmailというメールフォームcgiを使わせてもらっています。
このメールフォームに未入力のチェックをさせたいのですが、どうしてもうまくいきません。
例えば「名前」を入力必須項目にしたいので、未入力だった場合、エラーを表示させたいのです。
他のサイトなどを参考に、
#名前がないときの処理
if ($FORM{'NAME'} eq "") {
&err('名前が記入されていません。');
}
と入れてみたりしたのですが、Internal Server Error がでてしまいます。
また、現在配布されているものと違ったりするようです。
CGIに関してはあまり詳しくなく、本当に簡単な改造をしたことがある程度です。どなたかご存知の方がいらっしゃいましたらぜひ宜しくお願いいたします!
No.3ベストアンサー
- 回答日時:
ちは(^^)
僕もまだあまり詳しくないので基本的な感覚で$in{'NAME'}の答えを出したのですが(自分はいつもこれで使ってるので・・・)
『WwwMail Ver3.26 - メール送信フォーム』ですか?
僕も初めDLして表示しようとしたらサーバーエラーが出ました(><)
#!/usr/local/bin/perl
僕はアパッチを使ってるのでここの記述が違ってて
(まだ僕はHP公開はしてないのでデバック表示しかしてないので↓は使えないかもしれないですけど)
#! c:/perl/bin/perl
としたらwwwmail.cgiスクリプト内の『自己診断機能』というところが表示されました
mimew.pl
jcode.pl
BLATJ.EXE
が無い状態で表示しようとしたため(--;)
元の(何も手を加えていない)ほうは正常に機能するのでしょうか?
wwwmail.htmlは普通に表示されるでしょうからwwwmail.cgiのほう・・・
デフォルトで表示されないのなら行頭の部分が違うと思います
表示されて
『CGIは正常に動作しています。
~~~~ がありません。』
という風に表示されるのであれば・・・まぁフォルダそのまま使うのでしょうからplファイルはあるので『/usr/lib/sendmail がありません。』が表示されるかな?
↑が表示されてるなら『readme.html』を開いて『設置方法』の2か3を試してください
あと『&err』
つつかないのであれば『&errexit』でエラー表示画面になります
デフォルトは使えるというのであれば手を加えた方のどこかに記述ミスがあるのだと思います
ん~sendmail機能はまだ使う予定無いので動作確認はしてないですけど・・・
思いつくのはこれくらいかな?
デフォルトが使えるならJavascriptで未入力チェックをすることもできますよ(^^)↓
参考URL:http://javascript.eweb-design.com/1207_ma.html
leap_dayさんご回答ありがとうございます。
>あと『&err』
>つつかないのであれば『&errexit』でエラー表示画面になります
の部分で教えていただいた通り、「&err」を「&errexit」に直したら無事稼動しました!
私の基本的な知識が無いために気づくことができませんでした。
また、Javascriptでのチェックも参考になりました。
色々と調べて、丁寧に教えていただき本当に感謝しております。
これからもっと勉強していきたいと思います。
ありがとうございました!!
No.2
- 回答日時:
>#名前がないときの処理
>if ($FORM{'NAME'} eq "") {
>&err('名前が記入されていません。');
>}
>と入れてみたりしたのですが、
↓に修正してみてはどうでしょう。
#名前がないときの処理
if ($FORM{'NAME'} eq "") {
&errexit("名前が記入されていません。");
}
aikata39さん、ご回答ありがとうございます。
教えていただいた通り、
>#名前がないときの処理
>if ($FORM{'NAME'} eq "") {
>&errexit("名前が記入されていません。");
>}
の記述で無事稼動いたしました。
&errexitを&errと記述していたのが間違いであったようです。
お恥ずかしい限りです。
本当に、ありがとうございました。
No.1
- 回答日時:
フォーム内容を次のcgiページに送信してるのですよね?
んで未記入だったらエラーページを表示・・・でいいですか?
if($in{'name'} eq "") { $hit=1; last; }
if(!$hit) { &err("名前が入力されていません"); }
もしくは
if($in{'name'} eq "") { &err("名前が入力されていません"); }
で試してみてください
&err のところは
sub err {
}
でhtml表示できるように作ってますか?
leap_dayさん、さっそくのご解答ありがとうございます!!
教えていただいたように、
>if($in{'name'} eq "") { $hit=1; last; }
>if(!$hit) { &err("名前が入力されていません"); }
>
>もしくは
>
>if($in{'name'} eq "") { &err("名前が入力されていません"); }
を、
# EMAILが正常なメールあどれすかどうか判断する
#
if ($FORM{'EMAIL'} =~ /^[-_\.a-zA-Z0-9]+\@[-_\.a-zA-Z0-9]+$/) {
$mailfrom = $FORM{'EMAIL'};
}
の後に入れてみたのですが、やはりInternal Server Error がでてしまいました。
>&err のところは
>sub err {
>}
>でhtml表示できるように作ってますか?
ということですが、配布されているプログラムそのままで
エラーの時にhtml表示できるようになっていると思うのですが、
何か別に手を加えなくてはいけないですか?
何度も申し訳ありません。宜しくお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
apacheでPerl CGIが作動せず、5...
-
毎○曜日って、使いますか?
-
エクセルで毎月第2週日の水曜日...
-
VBAでExcelのヘッダーに文字列+...
-
週2回のペースって だいたい何...
-
アンケートなどの1日1回の投...
-
今週とは何曜日から何曜日まで...
-
エクセルで相対パスの書き方を...
-
DBを10件毎に表示ページング...
-
PerlでのHTTPヘッダのStatus変更
-
cgiで拡張子.cgiと拡張子.pl...
-
[Excel] ある日の曜日が当月の"...
-
jcode.plが読み込めない
-
win32::mediaplayerについて
-
月の第一週とは
-
Excelで第一〇曜日を求める方法...
-
Excel関数で当月の第一日曜日の...
-
クライアントのIPとマシン名を...
-
htmlからテキストを返すperlを...
-
指定曜日にMsgBox表示は可能で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
apacheでPerl CGIが作動せず、5...
-
CGIの中で出力するテキスト内容...
-
サクラのレンタルサーバーです...
-
SSI で #exec 以外で Perl-CGI ...
-
jQueryのpostからのリクエスト...
-
未入力のチェックをするには?
-
Googleアラリティクスの埋め込...
-
Linux7.2のApacheのCGIについて
-
CGIで出力するhtmlの<!DOCTYPE ...
-
月の第一週とは
-
よくある 『 第○(1・2・3・4・...
-
エクセルで毎月第2週日の水曜日...
-
エクセルで相対パスの書き方を...
-
週2回のペースって だいたい何...
-
毎○曜日って、使いますか?
-
やはり時間割いて叔母の事で10...
-
アンケートなどの1日1回の投...
-
土曜日の26時って何曜日の何時...
-
[Excel] ある日の曜日が当月の"...
-
リストコントロールの列幅を固...
おすすめ情報