こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

メールフォームを作成したのですがエラーと表示されてしまいます。どこがいけないのですか?

お世話になります。当方初心者です。是非助けていただきたく思います。
いろんなサイトでよくあるようにメールフォームを作成してCGIプログラムでメールを送信できるようにしたいと思い、以下のようにhtmlを作成しました。CGIはAppsPageさんのサイトでお借りしてkisomail3rdというCGIを使いました。http://apps.cside.com/cgi/
レンタルしているサーバはロリポップです。http://www.lolipop.jp/?mode=manual&state=hp&state2=cgi
CGIでロリポップが指定しているPERLパス・SENDMAILパスを変更してパーミッションも700に設定したのですが、何故かCGIエラーという表示が出て、うまく作動してくれません。初心者ゆえどこか基本的なことを見落としていると思います、どうか教えてください。
■HTMLソースです。
<form action="kisomail2nd_1_05/kisomail2nd/sendmail.cgi" method="post" class="style1">
<table>
<tr>
<td>会社・店舗名</td>
<td class="kakikomi"><input type="text"name="name"size="40"/></td>
</tr>
<tr>
<td>お名前</td>
<td class="kakikomi"><input type="text"name="name2"size="40"/></td>
</tr>
<tr>
<td>郵便番号</td>
<td class="kakikomi">
<input type="text"name="zip1"size="3"maxlength="3"/>
-
<input type="text"name="zip2"size="4"maxlength="4"/>
</td>
</tr>
<tr>
<td>都道府県</td>
<td class="kakikomi">
<select name="prefecture">
<option value=""selected="selected">選択してください </option>
<option value="日本国外" >日本国外</option>
<option value="北海道" >北海道</option>
<option value="青森県" >青森県</option>
(以下略)
</select>
</td>
</tr>
<tr>
<td>市町村・番地</td>
<td class="kakikomi"><input type="text"name="add1"size="40"/></td>
</tr>
<tr>
<td>E-Mail</td>
<td class="kakikomi"><input type="text"name="mail"size="40"/></td>
</tr>
<tr>
<td>電話番号</td>
<td class="kakikomi"><input type="text"name="name2"size="40"/></td>
</tr>
<td>お問い合わせの種類</td>
<td class="kakikomi">
<input name="category"type="radio"value="このサイトについてのお問い合わせ"/>お見積り<br/>
<input name="category"type="radio"value="その他お問い合わせ"/>
その他お問い合わせ</td>
</tr>
<tr>
<td>お問い合わせ内容</td>
<td class="kakikomi"><textarea name="contact" cols="40" rows="15"></textarea></td>
</tr>
</table>
<div>
<input type="submit" value=" メール送信 ">
<input type="reset" value=" リセット ">
</div>
</form>

投稿日時 - 2008-02-07 21:15:38

QNo.3754276

すぐに回答ほしいです

質問者が選んだベストアンサー

転送モードはascii(テキスト)ですよね?(念のため確認)

とりあえずはお手元のsendmail.cgiを文法チェッカで確認してください。

  http://www.e777.co.jp/perlcw/perlcw.html

投稿日時 - 2008-02-07 22:13:14

お礼

shimixさん>
さっそくご助言ありがとうございます。ご指摘のとおりバイナリで転送していました!早速改めてテキストで転送してみたらメールアドレスが間違っています、戻って入力し直してください。と表示されました。これは...?
教えていただいた分法チェッカを使ってみたところ、
Perlのエラー出力
Unrecognized character \241 at tmp.pl line 139.
とあり
0139: ($in{'mail'} =~ /[\n\r\f\a\e]/) ||
の部分が赤く表示されていました。
借りたCGIをそのまま使っているのですがおかしいところありますか?

投稿日時 - 2008-02-07 22:47:22

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

<tr>
<td>E-Mail</td>
<td class="kakikomi"><input type="text"name="mail"size="40"/></td>
</tr>
E-Mail に確認用がないようです。

試したわけではありませんが
入力項目の「name」「mail」「mail2」は、必須です。
と書いてあります。

投稿日時 - 2008-02-10 10:09:29

ANo.2

>0139: ($in{'mail'} =~ /[\n\r\f\a\e]/) ||

ですか?チルダが全角の波ダッシュになっているのはOKWaveの問題ですかね・・。元の記述は「($in{'mail'} =~ /[\n\r\f\a\e]/) ||」なので(この回答を投稿すればわかりますね)。

おそらくこの部分(入力されたメールアドレスをチェックしている部分です)の記述がおかしいので「メールアドレスが間違っています、戻って入力し直してください。」という結果になっていると思われます。

ちなみにウチのソース(展開したままの状態)を文法チェッカに入れてもエラーは出ませんでした・・。

投稿日時 - 2008-02-08 01:19:15

お礼

shimixさん>
アドバイスありがとうございます。波ダッシュをチルダに変えて再アップしてみました。ですが、結果はやっぱり「メールアドレスが間違っています、戻って入力し直してください。」といったような表示でした。八方ふさがりです。うーん、困った!

投稿日時 - 2008-02-08 22:39:12

あなたにオススメの質問