• ベストアンサー

メール送信フォームで。

CGI初心者です。 下記メールフォームで「内容確認画面を出さないで送信する」の文を削除して、 チェックボックスも削除したいのです。 ただ、フォーム上では削除されているように見えても、送信ボタンをクリックすると、すぐ確認画面が自動的に出てくるようにするにはどうたしら良いのでしょうか。 cgiファイルの設定で行うのでしょうか? 質問に不備がありましたら、補足致しますので、よろしくお願いします。 <input type="submit" VALUE="確認"> <input TYPE="reset" VALUE="リセット"> <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する</font>

  • CGI
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.4

ごめんなさい、きちんと理解せずに回答してしまいました。 no_check が on だと、「内容確認画面を出さない」んですよね。 "on" 以外にすれば大丈夫だと思います。お礼にあるスクリプトも "on" かどうかで チェックしていますし。 <input type="hidden" name="no_check" value="off">  ※ value="on" → value="off" です

shizuku
質問者

お礼

希望どおり、できました! ありがとうございました。

その他の回答 (3)

  • nipotan
  • ベストアンサー率59% (134/227)
回答No.3

no_check に on という値があると、内容確認画面が出ないので、その存在自体が邪魔なだけです。 <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する という部分自体を消してください。

shizuku
質問者

お礼

ありがとうございました。 a-kumaさんの方を先に試してしまったので。。。 また、よろしくお願い致します。

shizuku
質問者

補足

nipotanさんの方法でも、希望どおりできました。 ありがとうございました。

  • me_no_car
  • ベストアンサー率24% (22/90)
回答No.2

こんにちわ。 えーっと質問内容は いままで内容確認画面の表示をチェックボックスで 選択可能だったけれども内容確認画面を 常に表示したいとうことでいいのかな? フォームデータを受けとるCGIはできてるんですよね? あるのならこれが一番簡単です。 CGIの修正も不要です。 要はチェックボックスがオンの時と同じ状態のデータ送ってあげれば いいだけなので <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する の部分を <input type="hidden" name="no_check" value="on"> に書き換えればOKです。 これによりフォーム上では何も表示されないけれども チェックボックスがオンと同じになります。

shizuku
質問者

お礼

ありがとうございました。

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

> <input type="checkbox" name="no_check" value="on">内容確認画面を出さないで送信する という記述を <input type="hidden" name="no_check" value="on"> とすれば良いかもしれない。

shizuku
質問者

お礼

ありがとうございます。 試してみたのですが、 送信ボタンをクリックすると、すぐ送信されてしまい(お礼の画面がででくる)、 確認画面が自動的に出てこないのす。 CGIは・・・ #受け取り人のメールアドレス(あなたのメールアドレス) $mailto = '***@**.**.**'; #送信後に表示するページのURL $location = 'http://www.*****/***/**.htm'; #受け取るメールのタイトル $subject = 'フォーム'; #sendmailのパス(わからないときはプロバイダに聞く事) $sendmail = '/usr/sbin/sendmail'; #------------------------------------------------------------------------------# # 時刻取得 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $month = ($mon + 1); $years = ($year + 1900); $date_now = "$years/$month/$mday $hour:$min:$sec"; # フォーム内容を取得 if ($ENV{'REQUEST_METHOD'} eq "POST") { read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); } else { $buffer = $ENV{'QUERY_STRING'}; } if ($buffer eq "") { &send_error; } # フォーム内容を分析 @pairs = split(/&/,$buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $name =~ tr/+/ /; $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; if (!($value =~ /\n/) && $value =~ /\r/) { $value =~ s/\r/\n/g; } if ($name eq "no_check" && $value eq "on") { $nocheck = "on"; } else { if ($name eq "email") { $email = $value; } &jcode'convert(*name,'jis'); &jcode'convert(*value,'jis'); push(@DATA_N,$name); push(@DATA_V,$value); &jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis'); $name =~ s/</&lt;/g; $value =~ s/</&lt;/g; $name =~ s/>/&gt;/g; $value =~ s/>/&gt;/g; $name =~ s/"/&quot;/g; $value =~ s/"/&quot;/g; push(@DATA_NS,$name); push(@DATA_VS,$value); } } if (!($email =~ /(.*)\@(.*)\.(.*)/)) { $email = 'nobody@xxx.xxx'; } &jcode'convert(*subject,'jis'); $count = @DATA_NS; if ($nocheck eq "on") { &sendmail; } print 'Content-type: text/html' ."\n\n"; print '<html><head><title>WebFORM</title></head>' ."\n"; print << "END"; <SCRIPT LANGUAGE="JavaScript"> // //サブミット // function History_Back(){ document.location="main-4.cgi" } </SCRIPT> END print '<body><h1>内容確認</h1>' ."\n"; print '<form method="post" action="webform.cgi">' ."\n"; print '<table border width=80%><tr>' ."\n"; print '<td>項目</td>' ."\n"; print '<td>内容</td></tr>' ."\n"; foreach (0..$count-1) { print "<input type=hidden name=\"$DATA_NS[($_)]\" value=\"$DATA_VS[($_)]\">\n"; print '<tr>' ."\n"; print "<td>$DATA_NS[($_)]</td>\n"; chop($DATA_VS[($_)]) if $DATA_VS[($_)] =~ /\n$/; print "<td><pre>$DATA_VS[($_)]<pre></td>\n"; print '<tr>' ."\n"; } print '</tr></table><p>' ."\n"; print '<input type=hidden name="no_check" value="on">' ."\n"; print '<input type=submit value="送信"><input type=button value="前画面に戻る" onClick="history.back()"><p>' ."\n"; print '</form>' ."\n"; print "<hr><i>送信先:<a href=\"mailto:$mailto\">$mailto</a><i>\n"; print '<p></body></html>' ."\n"; exit; sub sendmail { if (!open(OUT,"| $sendmail $mailto")) { &send_error; } print OUT 'X-Mailer: WebFORM v1.0 (c)***@***.**.jp' ."\n"; print OUT "To: $mailto\n"; print OUT "From: $email\n"; print OUT "Subject: $subject\n"; print OUT "Content-Transfer-Encoding: 7bit\n"; print OUT "Content-Type: text/plain\n"; print OUT "\n\n"; $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; } print OUT "DATE : $date_now\n"; print OUT "REMOTE_HOST : $host\n"; print OUT "REMOTE_ADDR : $addr\n"; print OUT "HTTP_USER_AGENT : $ENV{'HTTP_USER_AGENT'}\n"; print OUT "----------------------------------------------------\n\n"; foreach (0..$count-1) { print OUT "$DATA_N[($_)] = $DATA_V[($_)]\n"; } print OUT "\n"; print OUT "----------------------------------------------------\n"; close(OUT); print "Location: $location\n\n"; exit; } sub send_error { print 'Content-type: text/html' ."\n\n"; print '<html><head><title>送信エラー</title></head>' ."\n"; print '<body>' ."\n"; print '<H2>何らかの原因で送信できませんでした</H2>' ."\n"; print '</body></html>' ."\n"; exit; } です。 長くてすみません。

関連するQ&A

  • 改めて・一つのページに複数のフォームメール

    具体性に欠いて、お答えにくかった質問を取り下げ、改めて質問させていただきます。 一つのページにメールフォームのcgiを2つ、組み込んでいます。 ------------------------- <FORM method="post" action="formmailer-theme.cgi"> <CENTER><input type="text" name="coment2" size="15"><input type="submit" value="送信"><input type="reset" value="リセット"> </CENTER> </FORM> ・ ・ ・ <FORM method="post" action="formmailer.cgi"> <CENTER><input type="text" name="coment" size="15"><input type="submit" value="送信"><input type="reset" value="リセット"> </CENTER> </FORM> ----------------------------------- 原文をコピーしました。 上のフォームでは正常に送信できるのですが、下のフォームではなぜか上で使われている「formmailer-theme.cgi」を呼び出し、必須と設定している"coment2"の入力を求めるエラーが返ってきます。 それぞれをformで囲っているのですが… 間違いありますでしょうか? また、不足している質問内容はありますでしょうか?

    • ベストアンサー
    • CGI
  • メーラーを使ったメール送信フォームで・・・

    こんにちは。 sendmailが使えないので、以下のように メーラーを使用してメール送信するフォームを設置しています。 <FORM method="POST" action="mailto:xxx@xxx.ne.jp?subject=【メール送信】" enctype="text/plain">  :  : <INPUT type="submit" value="送信" name="submit"> <INPUT type="reset" value="リセット" name="reset"> 送信ボタンを押しても画面がそのままなので、 送信後はトップページへ戻るよう案内をしています。 これを、送信ボタンを押した後に「ご利用ありがとうございました」などといった 別のページへジャンプするように設定する事は可能でしょうか? 不可能なら今のままでいこうと思っていますが、 もし方法があれば変更したいと思っています。 ご存知の方がいましたらご教授ください。 よろしくお願いします。

  • メールフォームで送信

    ラジオボタンとチェックボックスを選択しその結果をメールフォームにて送信出来るようにしたいのですが、可能でしょうか? ラジオボタンとチェックボックスの選択はこちらで http://okwave.jp/qa/q8072037.html これをメールフォームで送信するのですが、 最後にメールフォームを付け加えました。 これで、ラジオボタンとチェックボックスの選択されたものと合計も一緒に送信は可能でしょうか? 皆様ご教授の程お願いします。 <br> 下記の項目もどうぞ <br> <font color="#ff0000" size="1"><b> ※ </b></font>のついている項目は<font color="#ff0000"><b>必須</b></font>です。 <form method="post" action="CGIのURI"><br> <p> <br> <font color="#ff0000" size="1"><b> ※ </b></font>氏名:<input name="氏名" type="text"> <br> <font color="#ff0000" size="1"><b> ※ </b></font>年齢:<input name="年齢" type="text"> <br> <font color="#ff0000" size="1"><b> ※ </b></font>メールアドレス <input name="mail" class="form-textline01" maxlength="100" value="" type="text"><br> <font color="#ff0000" size="1"><b> ※ </b></font>住 所 <input name="address" class="form-textline03" maxlength="1000" value="" type="text"> <br> <font color="#ff0000" size="1"><b> ※ </b></font>電話番号 <input name="tel" class="form-textline01" maxlength="20" value="" type="text">例) 123-456- 7890 <br> <font color="#ff0000" size="1"><b> ※ </b></font><br> <input name="性別" value="男" checked="checked" type="radio"> 男  <input name="性別" value="女" type="radio"> 女<br> <br> メダルの項目:<br> <input name="properties" value="CellPhone" type="checkbox"> マラソン <input name="properties" value="Car" type="checkbox"> 体操 <input name="properties" value="Car" type="checkbox"> 水泳 <input name="properties" value="Car" type="checkbox"> サッカー <input name="properties" value="Car" type="checkbox"> フットサル<br> <input name="properties" value="Car" type="checkbox"> バスケット <input name="properties" value="Car" type="checkbox"> バレー <input name="properties" value="Car" type="checkbox"> 野球 <input name="properties" value="Car" type="checkbox"> 相撲 <input name="properties" value="Car" type="checkbox"> スケート<br> <input name="properties" value="Car" type="checkbox"> スノボ <input name="properties" value="Cottage" type="checkbox"> セクシーコマンド<input name="properties" value="Car" type="checkbox">その他 <br> <br> 認定資格:<input name="資格" type="text"> <br> 好きな果物:<br> <select name="好きな果物"> <option>りんご</option> <option>みかん</option> <option>バナナ</option> <option>パイナップル</option> </select> <br> <textarea name="freeans" rows="4" cols="40">自由に意見を記述してください</textarea><br> <input value="送信" type="submit">  <input value="取り消し" type="reset"> </p> </form> <br> <br> ご協力ありがとうございました・・・<br> <br> </body> </html>

  • メール送信フォームで、メールが白紙で送られてしまう

    フォームを使って、下のような簡単なメール送信フォームで試したのですが、メールは送信できるのにその内容が白紙で送られてしまいます。(メーラーやブラウザにもよるのでしょうか?ちなみにメーラーは手裏剣2、ブラウザはIE5.5のSP2を使っています。) <FORM METHOD=POST ACTION="mailto:***@xxx.yyy.zzz"> <DIV>名前: <INPUT TYPE=text NAME="NAME" SIZE=20></DIV> <DIV>感想: <INPUT TYPE="text" NAME="TESTMSG" SIZE=20></DIV> <INPUT TYPE=submit VALUE=" 送信 "> <INPUT TYPE=reset VALUE=" 取消 "> </FORM>

  • メールフォームで送信完了画面に移動するには??

    こんにちは。どなたか分かる方、お力を貸してください。 自分の個人的なホームページをつくっているのですが、 初心者なので、四苦八苦しています。 どうしてもつまづいてしまうところがあるのですが、 題字のとおり、メールフォームから送信した後に 送信完了画面に移動するにはどうしたら良いのでしょうか? 他の似たような質問を参考に↓ここまで書いてみたのですが、 どうも上手くいきません。 isweb(CGIつき)を使用していて、 送信後は、自動的にiswebで用意された 「○○さんのところへメール送信しました」 という画面に行ってしまいます。 ----------------------------------------------------- <td> <input type="submit" value="送信" name="submitButton"> <input type="hidden" name="nextpage" value="/usr/わたしのID/次のページ.html のURL"> <input type="reset" value="リセット"></td> </tr> ----------------------------------------------------- Macで、 使用ソフトはGoLiveの4です。 古いです。 以上よろしくお願いします

    • ベストアンサー
    • HTML
  • HTMLフォームで複数選択のチェックボックスの値をまとめてから送信したい

    下のようなフォームがあります。 <form method="get" action="" >  <input type="checkbox" name="item" value="1">item1</input>  <input type="checkbox" name="item" value="2">item2</input>  <input type="checkbox" name="item" value="3">item3</input>  <input type="submit" value="送信" /> </form> これで例えばすべてのチェックボックスをチェックして送信した場合、 ?item=1&item=2&item=3 となりますが、これを ?item=1,2,3 とする方法はありますでしょうか? 都合により、method="get"の部分は変えられず、受け取ってからの処理(value値を配列にして受け取ってから展開するなど)も変更できません。 ご教授いただけると助かります。

    • ベストアンサー
    • PHP
  • メールフォームの内容を送信者にも控えがとれるようにしたい

    下記の件で困っています。 HTMLの中で、メルフォを設けました。 <form method=post action="フォームデコードサービス"> <input type=hidden name="_mailto" value="***@*****.ne.jp"> <input type=hidden name="_subject" value="件名"> <input type=hidden name="_location" value="http://戻りURL.htm"> <table border="0" cellpadding="5" cellspacing="0" width="900"> <tr> <td width="150">氏名</td> <td colspan="2" width="700">     <input type="text" size="30" name="氏名"></td> </tr> ・ ・ ・ <p> <input type="submit" value="submit"> <input type="reset" value="reset"> </p> </form> 最初はデコードサービスを使わなかったのですが、Macから送信されるデータが文字化けする為、使うことにしました。 しかし、そうすると、送信者に送信内容が残らなくなってしまいました。 送信者の手許にもコピーが残るようにしたいので、お知恵を拝借できれば幸いです。 よろしくお願い致します。

  • メールフォーム

    【満足できる回答に300ポイント】メールフォームをホームページに設置しました。CGIはフューチャースピリッツhttp://www.future-s.com/でお借りしました。送信ボタンを押した後、自分が指定した特定のページを表示させたいのですが、借りているところのホームページに行ってしまいます。自分の指定したページを表示させるにはどんなHTMLにしたらいいのでしょうか? 現在は下記のようなHTMLを使っています。 <form action="http://form3.future-s.com/cgi/form3.cgi" method="post"> <input type="hidden" name="formid" value="IDナンバー"> <input type="hidden" name="formsubject" value="○○"> <input type="hidden" name="formlog" value="1"> 中略 </FONT><P><FONT size="-1"><INPUT TYPE="submit" VALUE="送  信"> <INPUT TYPE="reset" VALUE="リセット"> もしHTMLが問題でないなら、下記の条件を満たすフォームを教えてください。 ・CGIを借りても広告の入らないもの ・フォームは自分で作ったものが使えること ・送信後、自分が特定したページを表示させること ・無料であること どうぞよろしくお願いします。

  • HPでフォームメールの送信ができない

    OSはWin xp、サーバーはOCNの「Page ON」を使っています。 メールフォームの設置をしたいのですが、OCNのホームページにある記述では、メールの送信が出来ません。アップロードもしています。 <FORM METHOD="post" ACTION="/cgi-bin/formmail.pl"> <INPUT TYPE="hidden" NAME="recipient" VALUE="???@???.ocn.ne.jp"> [メッセージ]:<INPUT NAME="subject" SIZE="30"><BR> [おなまえ]:<INPUT NAME="name" SIZE="30"><BR> [E-mail]:<INPUT NAME="email" SIZE="30"><BR> <INPUT TYPE="submit" VALUE="送信"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> [メッセージ][おなまえ]のところに記入すると、メールは送信されるときとされないときがあります。 [E-mail]に記入すると送信できません。 送信されない時は、上にFORM MAILとグレーに文字がでてくるだけです。 どこが悪いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • CGI
  • フォーム INPUTの文字化け対策の対処方は?

    チェックボックス(趣味のリスト)のチェック有無を配列で受けていますが、"パソコン"の文字が"パソ\コン"に文字化けしてしまいます。対処方法をお教えください。 <?php mb_language('Japanese'); $hobby=@implode(" ",$_POST[hobby]); echo $hobby; ?> <FORM action="<?=$_SERVER[PHP_SELF]; ?>" method="post" > <INPUT type="checkbox" name="hobby[]" value="旅行" >旅行<BR> <INPUT type="checkbox" name="hobby[]" value="温泉" >温泉<BR> <INPUT type="checkbox" name="hobby[]" value="ゴルフ" >ゴルフ<BR> <INPUT type="checkbox" name="hobby[]" value="パソコン" >パソコン<BR> <INPUT type="checkbox" name="hobby[]" value="ドライブ" >ドライブ<BR> <INPUT type="checkbox" name="hobby[]" value="写真" >写真<BR> <INPUT type="submit" name="submit" value="送信"><BR> <INPUT type="reset" name="reset" value="RESET"> </FORM>

    • ベストアンサー
    • PHP

専門家に質問してみよう