• 締切済み

勝手に白紙のメールが送信されてしまう。

お問い合わせフォームにPerlのsendmailを使用しています。JavaScriptとCGIの両方で入力制限をかけ、未入力があると送信できないような設定にしてあるのですが、全て白紙(未入力)のメールが送られてきてしまいます。制限をかけているので、送られてくるはずはないと思うのですが…。制限の仕方が甘いのでしょうか?このようなことはあるのでしょうか?

みんなの回答

回答No.2

フォームに何も入力しないで送信しようとした時にちゃんと エラーは出ますか? 出るのであれば、入力チェックには問題が無くて ただ単に、入力内容をメール本文に入れてないだけでは 無いでしょうか?

noname#23817
質問者

お礼

いえいえ、未入力だと送信できないようになっています(ブラウザ上では)。エラーも出ますし…。

  • kikanbo
  • ベストアンサー率31% (44/139)
回答No.1

プログラミングソースを見ないとわかりません。

noname#23817
質問者

補足

こんな感じです。 所々、抜粋して載せました。 これはCGIでの入力制限はかけてないパターンでhtmlにJavaScriptでアラートが出るようにしてあります。 メールの宛先は伏せてあります。 ペーストしたら¥マークが?になってしまいました。 #!/usr/bin/perl require'cgi-lib.pl'; require'jcode.pl'; &ReadParse(*form); $sendmail='/usr/sbin/sendmail'; $mailto='........................'; $subject='web mail'; $email='nobody@xxx.yyy.zzz'; $sendername='$mail'; $name="$form{'name'}"; $post="$form{'post'}"; $todouhuken="$form{'todouhuken'}"; $adress="$form{'adress'}"; $tel="$form{'tel'}"; $mail="$form{'mail'}"; $text="$form{'text'}"; $text=~s/<br>//g; &jcode::convert(*name,'euc'); &jcode::convert(*post,'euc'); &jcode::convert(*todouhuken,'euc'); &jcode::convert(*adress,'euc'); &jcode::convert(*tel,'euc'); &jcode::convert(*mail,'euc'); &jcode::convert(*text,'euc'); $mailbody= "氏名= $name?n?n". "住所= 〒$post"." $todouhuken"."$adress?n?n". "電話= $tel?n?n". "メール= $mail?n?n". "本文?n". "$text?n?n"; $subject="フォームメール"; &jcode::convert(*mailbody,'jis'); &jcode::convert(*subject,'jis'); open MAIL,"|$sendmail $mailto"or die"error"; print MAIL"To:$mailto?n"; print MAIL"From:$mail?n"; print MAIL"Subject:$subject?n"; print MAIL"Content-type: text/plain?n?n"; print MAIL"$mailbody?n"; close(MAIL); $title="送信完了"; $body="送信ありがとうごいました。"; $link="TOPページへ"; &jcode::convert(*title,'sjis'); &jcode::convert(*body,'sjis'); &jcode::convert(*link,'sjis'); print "Content-type: text/html ?n?n"; print "<html>?n"; print "<head><title>$title</title></head>?n"; print "<body bgcolor='#FFFFFF' marginheight='150'><center>"; print "<br><br>$body<br>"; print "<br><br><a href='top.htm'>$link</a>?n"; print "</center></body>?n"; print "</html>?n"; exit;

関連するQ&A