お世話になります。メールフォームを作成してCGIプログラムでメールを送信できるようにしたいと思い、以下のようにhtmlを作成しました。CGIはSYNCK GRAPHICAさんのサイトでお借りして自動返信機能付メールフォームCGIというCGIを使わせてもらいました。?http://www.synck.com/contents/download/cgi-perl/ …
レンタルしているサーバはロリポップです。?http://www.lolipop.jp/?mode=manual&state=hp&stat …
CGIでロリポップが指定しているPERLパス・SENDMAILパスを変更してパーミッションも700に設定したのですが、何故かエラーの表示が出て、うまく作動してくれません。郵便番号自動検索機能も正常に機能しません。それでSYNCK GRAPHICAさんにどうして?と聞いたのですが、「http://www.自分のサイトアドレス/mailform.js←ここにファイルが無いためと考えられます。」という返事のみで、「何のファイルがないの?」って感じで全く分かりませんでした。初心者ゆえどこか基本的なことを見落としていると思います、どうか教えてください。
<table>
<tr>
<td>メールアドレス<span>*</span><p class="form">e-mail address</p></td>
<td class="kakikomi"><input type="text" name="email(必須)" style="width: 300px;ime-mode: disabled;" onBlur="keepField(this.form.id)"></td>
</tr>
<tr>
<td>確認用メールアドレス<span>*</span><p class="form">e-mail address</p></td>
<td class="kakikomi"><input type="text" name="confirm_email" style="width: 300px;ime-mode: disabled;" onBlur="keepField(this.form.id)"></td>
</tr>
<tr>
<td>お名前<span>*</span><p class="form">your name</p></td>
<td class="kakikomi"><input type="text" name="お名前(必須)" style="width: 300px;ime-mode: active;" onBlur="keepField(this.form.id)"></td>
</tr>
<tr>
<td>性別<p class="form">sex</p></td>
<td class="kakikomi"><input type="radio" name="性別" value="男" onBlur="keepField(this.form.id)">男 <input type="radio" name="性別" value="女" onBlur="keepField(this.form.id)">女</td>
</tr>
<tr>
<td>電話番号
<p class="form">telephone number</p>
</td>
<td class="kakikomi"><input type="text" name="電話番号" style="width: 120px;ime-mode: disabled;" onBlur="keepField(this.form.id)"></td>
</tr>
<tr>
<td>郵便番号<p class="form">postcode</p></td>
<td class="kakikomi"><input type="text" name="郵便番号" style="width: 60px;ime-mode: disabled;" onBlur="keepField(this.form.id)"> <input type="button" value="〒から住所を自動入力" name="postcode" onClick="javascript:checkPostcode('mailform','郵便番号','住所(必須)');"></td>
</tr>
<tr>
<td>住所<span>*</span><p class="form">address</p></td>
<td class="kakikomi"><input type="text" name="住所(必須)" style="width: 300px;ime-mode: active;" onBlur="keepField(this.form.id)"></td>
</tr>
<tr>
<td>ご用件<span>*</span><p class="form">inquiry subject</p></td>
<td class="kakikomi"><select name="ご用件(必須)" id="business" onBlur="keepField(this.form.id)">
<option value="" selected>下記の中から必ず選択して下さい</option>
<option value="デザイン・印刷のお見積り">デザイン・印刷のお見積り</option>
<option value="その他お問い合わせ">その他お問い合わせ</option>
</select>
</td>
</tr>
<tr>
<td>ご用件<span>*</span><p class="form">inquiry body</p></td>
<td class="kakikomi"><textarea name="ご用件(必須)" style="width: 300px;height: 140px;ime-mode: active;" onBlur="keepField(this.form.id)" rows="15" cols="30"></textarea></td>
</tr>
<tr>
<td>送信確認<p class="form">sending confirm</p></td>
<td class="kakikomi"><input type="checkbox" name="送信確認(必須)" value="送信チェック済み" onClick="keepField(this.form.id)">上記内容を確認したらチェックを入れてください</td>
</tr>
<tr>
<td></td>
<td class="kakikomi"><input type="submit" value="メールを送信する"> <input type="reset" name="reset" value="リセット"><br></td>
</tr>
<tr>
<td></td>
<td class="kakikomi"><span>*</span>は必須項目です。</td>
</tr>
</table>
</form>
No.9ベストアンサー
- 回答日時:
難しく考えなくていいよ。
ポップアップの文字化けはPerlエラーがどうだとかじゃなく、多分charsetの相違でしょう。
<script type="text/javascript" src="mailform.js" charset="***"></script>
charset="***"の箇所を正しい文字エンコーディングにしてください。
予想では「Shift_JIS」にすればいい気がする。
niarbmiaさん>
ありがとうございます、ご指摘の通りにしたら文字化けはなくなりました。本当に助かりました!自分の力だけではどうしようもないところがあったので本当に感謝しています。ありがとうございました。
No.8
- 回答日時:
<form>タグ内(直下)に
<input type="hidden" name="must_id" value="(必須)">
これを挿入してみてください。
元は記入されてたはずですよ。
この回答への補足
niarbmiaさん>
回答ありがとうございます、すごく助かりました!
niarbmiaさんの回答の通り<form>タグ内に<input type="hidden" name="must_id" value="(必須)">を挿入しました。その状態で送信ボタンをクリックしてみたら文字化けしたポップアップ警告がでて、それをOKクリックすると、ページは見つかりませんでした。という表示が。でもフォームからのメールはちゃんと指定のメアドに来ました。
そのあと、finish.htmlの階層が違うことに気づいてこれが原因かもと思い、cgiファイルの
$thanks_url = 'http://toonie.cc/finish.html'; を
$thanks_url = 'http://toonie.cc/mailform/standard/finish.html';
に変更しました。それで、text転送モードで再アップロード(パーミッションは600に変更)しました。
ところが、今度は文字化けした警告ポップアップが出てくるとこまでは一緒ですが、「500 ERROR ※CGI もしくは SSI が正しく動作していません。」という表示が出て、送れていたメールも届きません。
これは一体どういうことでしょうか?もしかしたらとんでもない間違いを犯していますか?迷惑ばかりかけて申し訳ありませんがどうか教えてください。
niarbmiaさん>
問題は9割方解決しました。パーミションを700のところ600にしていたみたいです。凡ミスでした。あとはポップアップの文字化けだけです。
Perlの文法チェッカー(http://www.e777.co.jp/perlcw/perlcw.html)でチェックしてみたところ、
Perlのエラー出力
Unrecognized character ?241 at tmp.pl line 65.
0065: $name =~ tr/+/ /;
という診断でした。どうやらここが間違っているみたいなのですが、私にはどこを修正していいのか分かりません。もしよろしければ教えていただけませんか?
No.7
- 回答日時:
連絡おくれましたが、
もしまだ解決していないようであれば、
データをください。
こちらこそ連絡せずに申し訳ありませんでした。是非よろしくお願いします。
現状としましては、相変わらず送信ボタンをクリックすると「Type 1 Error」という表示が出て、送信はできない状態です。ただ住所自動検索は正常に動きます。tobi-u-oの好意に感謝しています。もしかしたら非常にくだらない、簡単なことかもしれませんが、当方素人なものでどうか助けてください。htmlソースとか読みにくいかもしれませんが許してください。下記のページからDLしてください。
http://www.toonie.cc/data.html
契約しているロリポップCGI・SENDMAILの情報も載せておきます。
http://lolipop.jp/?mode=manual&state=hp&state2=cgi
よろしくお願いします。
No.5
- 回答日時:
ダイアログ(灰色のポップアップみたいな)の
エラーメッセージですよね?
それだと、ただ単に入力必須項目に対して
入力がされていませんよというものなので、
全部、必須項目の箇所に入力されていれば
動くと思いますが・・・。
自分でカスタマイズしていなければ、
問題ないはずなので。。。
この回答への補足
いえ、アイアログの警告メッセージではなく、ブラウザの画面が変わって「TYPE 1 ERROR」と出ます。他には何の表示もなくそれだけなんです。もちろん必須項目の箇所は全部入力されています。それだけにホントに分からないです、何故なんだ...?
補足日時:2008/03/06 13:21No.3
- 回答日時:
まず、階層をチェックして下さい。
階層が違えば、呼び出されませんし。
後は、エラーの内容を具体的に、説明してください。
この回答への補足
回答ありがとうございます。
階層を説明します。まずmailformフォルダの中にstandardフォルダがあって、その中にmailform.jsとsend.cgiやpostcodeフォルダやjcode.plやcount.datなど入っています。アップロードする時はmailformフォルダごとアップロードします。FTP transfer typeはtextです。
エラー内容はTYPE 1 ERRORという表示のみが出ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- Perl PERL 1 2022/04/26 14:15
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
このメールフォームが機能しな...
-
チェックボックスの返す値
-
ボタンの処理
-
チェックボックスで選択した内...
-
CGIで書き出したJavaScriptの動...
-
チェックボックスでのvalue値の...
-
wordの数式について 定積分を書...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
select値をhiddenのvalueに渡し...
-
tracert ができない原因
-
INPUT TYPE
-
チェックボックスとセレクトボ...
-
WEBページを強制的に横画面で見...
-
チェックボックスグループの一...
-
FORMのselectの選択肢を最初か...
-
チェックボックスでのor検索
-
CGI実行できない。ソースが表示...
-
htmlからパラメータで、cgiに渡...
-
横スクロールを縦スクロールに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックスの返す値
-
別formのhidden項目を自form値...
-
Error: No Recipient というエ...
-
複数ボタンのvalueを送れない
-
フォームの年号リストの自動更新
-
CGIでチェックボックスを使...
-
CGIでラジオボタンの選択結果を...
-
チェックボックスで選択した内...
-
フォームの記述
-
「利用規約の同意」チェックボ...
-
プルダウン&キーワードで
-
CGIで得た内容をHTMlページに代入
-
アンケートの質問を複数にしたい
-
CGIフォームから飛ばすメールで...
-
submitボタンが押せない? J-sk...
-
VBAでWEBもっと見るを押して...
-
CGIに渡しているパラメータを表...
-
掲示板の文字色指定について
-
フォームの入力内容の後ろに文...
-
CGIフォームから飛ばすメールが...
おすすめ情報