メールフォームで必須項目を入力しないと送信できないようにするにはどうすればいいでしょうか?
現在は以下のとおりに書いてありますが、必須項目に書いてなくても送信できてしまいます。

<form method="post" action="CGI">
<h3>お問い合わせフォーム</h3>
<p>*は必須項目です。</p>
<table>
<tbody>
<tr>
<th>お問い合わせ内容*</th>
<td><textarea name="お問い合わせ内容" class="l" cols="40" rows="12"></textarea></td>
</tr>
<tr>
<th>お名前(漢字)*</th>
<td><input type="text" name="お名前(漢字)" class="m"></td>
</tr>
<tr>
<th>お名前(フリガナ)*</th>
<td><input type="text" name="お名前(フリガナ)" class="m"></td>
</tr>
<tr>
<th>E-Mail*</th>
<td><input type="text" name="E-mail" class="l"></td>
</tr>
<tr>
<th>電話番号(半角)*</th>
<td><input type="text" name="電話番号" class="l"></td>
</tr>
</tbody>
</table>
<input type="submit" value="  送信  " class="button"></form>


また必須項目が未入力のときにエラーメッセージ(「お名前が未入力です。」など)を出したいのですがどのようにすればいいですか?

A 回答 (1件)

まずjavascriptでチェックします。


すべて一旦送信してエラーを返すより良いと思います。

<script type="text/javascript">
function inchk(f){var ele="";
for(i=0;i<f.elements.length-1;i++){
if(f.elements[i].value=="") ele+=f.elements[i].name+"が未記入です\n";
}
if(ele){alert(ele);return false;}
}
</script>

<form method="post" action="CGI" onsubmit="return inchk(this)">

ただし、ユーザのブラウザが javascript OFF ですとこれは効きませんから、スクリプトでもチェックが必要ですけどね。
スクリプトは受信データを変数に格納しているところでチェックして確認ページにプリントします。
ここで説明するより、いろいろサンプルを見たほうがいいです。

参考URL:http://webmastertool.jp/
    • good
    • 0
この回答へのお礼

参考になりました。ありがとうございました。

お礼日時:2011/10/27 01:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qテーブル内の文字サイズを変更したい。

HTMLのテーブル内の文字サイズを変更したいのですが。
イマイチ上手くいかずに悩んでいます。
出来れば全体的に<TABLE></TABLE>のほうでいじれますか?
<TD>タグや<TR>タグのところでいじくるのですか?

Aベストアンサー

いろいろやり方はありますが
文字単位でサイズを変更するには
#2の方法ですね。

テーブルごとやセル(<TD>)ごとにサイズを変更するには
スタイルシート(CSS)を使用します。

テーブルごとにサイズを変更する場合
<TABLE style="font-size : 20px;">

セル(<TD>)ごとにサイズを変更する場合
<TD style="font-size : 20px;">あああ</TD>

#1の方法だとページ内の全てのセル(<TD>)に設定することになります。

スタイルシート(CSS)はこれら以外にも
いろいろな設定方法があります。

QCGIのメールフォームを、ウェブページ内に設置する方法が解りません。

はじめまして。
CGIのメールフォームを、ウェブページ内に設置したいと思っております。

https://www.calbee.co.jp/soudanshitsu/otoiawase/
こちらのページのように、ウェブページの中にメールフォームを埋め込みたいのですが、
全く方法がわかりません。

個人サイトでも、このようにCGIのメールフォームを、
ウェブページ内に設置しているのを見かけますが、
どのようにすればよいでしょうか。

また、ウェブページ内に埋め込めるCGIのメールフォーム、埋め込めないメールフォームは
あるのでしょうか。

作成ソフトはホームページビルダー、サーバはCGI設置可です。
宜しくお願い致します。

Aベストアンサー

どうもXTRECのHISABOです。アクセス解析でここへ来ました。

ok-aki11さん、はじめまして。
入力フォームとCGIスクリプトを切り離して考えてください。

「基礎メール」を使う際の案件です。
input.htmlのformタグから著作権表示部分(リンクウェアですので使用する場合は必ず著作権表示を入れましょう)までをコピーして自分の用意したページのフォームを表示したい部分に貼り付けます。

formタグの下記部分を
action="./sendmail.cgi"を
action="sendmail.cgiまでのパスを記入"
へと変更します。
sendmail.cgiまでのパスがフォームページから一つ下の階層mailフォルダにある場合は
action="mail/sendmail.cgi"
とします。

あとはfinish.htmlをお好きなデザインにカスタマイズすれば宜しいかと。

またエラーが出た場合はCGIで描写したものになりますのでデザインを重視したい場合は入力後の処理を別のウィンドウで表示するのが良いです。
上の例で言いますと
action="mail/sendmail.cgi" target="_blank"
とすればOKです。
更にJavaScriptを使って小窓表示させる事も出来ます。
その場合は
action="mail/sendmail.cgi" target="_blank" onClick="window.open(mail/sendmail.cgi','','width=300px,height=300px');return(false);"
でOKです。

あと質問する際はご利用のサーバー名も記載したほうが回答がしやすくなります。

以上です

どうもXTRECのHISABOです。アクセス解析でここへ来ました。

ok-aki11さん、はじめまして。
入力フォームとCGIスクリプトを切り離して考えてください。

「基礎メール」を使う際の案件です。
input.htmlのformタグから著作権表示部分(リンクウェアですので使用する場合は必ず著作権表示を入れましょう)までをコピーして自分の用意したページのフォームを表示したい部分に貼り付けます。

formタグの下記部分を
action="./sendmail.cgi"を
action="sendmail.cgiまでのパスを記入"
へと変更します。
sen...続きを読む

QParse error: syntax error, unexpected T_STRING in・・・118と出るのですが

Parse error: syntax error, unexpected T_STRING in 。。。 on line 118
とでるのですが対処はどうすればよろしいでしょうか?

Aベストアンサー

118行目をみてみてください。
ダブルクォーテーションのなかでダブルクォーテーションを使ったり
してませんか?
基本的な文法ミスなので、自己解決できないと今後きびしいですよ。

QCGI(Perl)内での必須項目チェック

CGI(Perl)内で必須項目のチェックを行うところで
書き方が分からず困っています。

フォームページHTMLファイルにラジオボタンで選択ボタンが2つとテキストエリアが3つあります。
ラジオボタンのnameは、携帯電話。
valueの1つ目は "1"、2つ目は ""(空白)。

テキストエリアの
1つ目のnameは、"携帯1"。2つ目のnameは、"携帯2"。3つ目のnameは、"携帯3"。

ラジオボタンのvalueが"1"の場合は、テキストエリア全てに項目が入っていないとエラーメッセージが出るチェックを作りたいのです。

説明が分かりづらいかもしれないのですが、お力をお貸しください。
宜しくお願いします。

Aベストアンサー

milktea_ さん、

ということは、ひょっとして、確認画面の表示は以下のようなコードになっているのでしょうか。

* name を項目名としてそのまま使用
#================================================
print "$name : $in{$name}"
#================================================

もしそうであれば、以下のように書き換えてあげるのでは駄目ですか?
#================================================
print "携帯電話番号1 : $in{'celler1'}"
#================================================

どうしてもコードを書き換えたくないのであれば、name を「携帯電話番号1」のように元に戻してください。
とりあえず「携帯電話番号」には、文字化け等の問題を起こしそうな文字は含まれていないので。。。

milktea_ さん、

ということは、ひょっとして、確認画面の表示は以下のようなコードになっているのでしょうか。

* name を項目名としてそのまま使用
#================================================
print "$name : $in{$name}"
#================================================

もしそうであれば、以下のように書き換えてあげるのでは駄目ですか?
#================================================
print "携帯電話番号1 : $in{'celler1'}"
#======================================...続きを読む

QFORMで送信ボタンと戻るボタンを2つつけてそれぞれ遷移先を変えたい

  
以下のような画面を作りたいのですが↓

--------------------------------------------------------------------------------
● a.php (ユーザ情報入力画面) ※フォームに入力する画面
 
 <FORM method="POST" action="b.php">
  <INPUT type="text" name="mail">
  <INPUT type="submit" name="submit" value="確認">
 </FORM>

● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面

 <FORM method="POST" action="c.php">
  <!-- ここには、フォームに入力された値を表示する -->
  <INPUT type="submit" name="submit" value="登録"> // c.php に遷移する
  <INPUT type="submit" name="submit" value="戻る"> // a.php に戻る
 </FORM>

● c.php (完了画面)
--------------------------------------------------------------------------------
b.php について質問なのですが、
b.phpにおいて、登録ボタンと戻るボタンを2つつけて、
それぞれ遷移先を変えたいのですが、どうすればいいんでしょうか・・・?
<FORM method="POST" action="c.php">と書いてしまうと、
戻るボタンを押しても戻らずに、c.phpに遷移してしまいますよね??
こういう場合ってJavaScriptとかで遷移先を指定するんですか・・?
もしそうでしたら、JavaScriptがよくわからないので
できればサンプルコード示していただけると助かります・・・。
  

  
以下のような画面を作りたいのですが↓

--------------------------------------------------------------------------------
● a.php (ユーザ情報入力画面) ※フォームに入力する画面
 
 <FORM method="POST" action="b.php">
  <INPUT type="text" name="mail">
  <INPUT type="submit" name="submit" value="確認">
 </FORM>

● b.php (ユーザ情報入力確認画面)※フォームに入力された値を表示する画面

 <FORM method="POST" action="c.php">
  <!-- ここには、フォームに入...続きを読む

Aベストアンサー

はじめまして。

<INPUT type="submit" name="submit" value="登録" onClick="form.action='c.php';return true">
<INPUT type="submit" name="submit" value="戻る" onClick="form.action='a.php';return true">

でいいと思います。(実際、このコードで使っています)
値を渡すには、FORM内にhiddenで、値を設定しておいて、methodをPOSTに設定しておけば、渡せます。

Q1つのformで複数のactionを実行できますか?

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">

<form method=get action="http://www.google.co.jp/search">
<input type=hidden class="q" name=q value="商品名"><input type=hidden name=ie value=UTF-8><input type=hidden name=oe value=UTF-8><input type=hidden name=hl value="ja"><input name=btnG type="image" src="検索.gif value="検索"><input type=hidden name=sitesearch value="サイトのURL"></form>
</form>
</form>

+----+  +----+
|購入|  |検索|
+----+  +----+

フォーム内に商品の購入ボタンがあります。同じフォーム内に商品名でグーグルのサイト内を検索させるボタンを設置し、横に並べることは可能ですか?
フォームの入れ子はよくないようなので、検索をJava scriptでできればよいのですが・・・
スタイルシートではデザイン上無理でした。

<form id="fm" name="fm" action="URL" method="POST">
<input type="hidden" name="shouhinmei" value="商品名">
<input type="hidden" name="kakaku" value="500">
<input type="image" src="kounyuu.gif value="購入">...続きを読む

Aベストアンサー

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onclick="return searchGoogle('商品名')"><img src="検索.gif" border=0></a>
</form>

<form action="http://www.google.co.jp/search" id="searchForm" style="display:none;">
<input type=hidden name="q">
<input type=hidden name=ie value="UTF-8">
<input type=hidden name=oe value="UTF-8">
<input type=hidden name=hl value="ja">
<input type=hidden name=sitesearch value="サイトのURL">
</form>

</body>
</html>

では、以下のような感じで。
なるべく多くのブラウザで動くように書いたつもりですが検証は充分行ってください。

<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function searchGoogle(q) {
document.forms['searchForm'].elements['q'].value=q;
document.forms['searchForm'].submit();
return false;
}
//-->
</script>

</head>
<body>

<form action="URL">
~~
<input type="image" src="kounyuu.gif value="購入">
<a href="http://www.google.co.jp/" onc...続きを読む

Q拡張子 epsの開き方、どなたか教えて下さい!

拡張子EPSの開き方をどなたか教えていただけませんか? 開こうとすると、WEBサービスを使用して適切なプログラムを探す、もしくは一覧からプログラムを選択する、という項目がでますが、どうすればよいかわかりません。

全くの初心者なので、わかりやすく記載して頂ければすごく助かります。
宜しくお願い致します。

Aベストアンサー

少し本道から外れた回答を。私は会社でIllustratorでロゴ等のデザインをして(epsで保存)、それをWordやExcelに貼ったりして使うことが良くあります。

ファイルがロゴ等の小さいものであればWord,Excelで中身を見ることは可能です。
(やり方)
1.Word,Excelのツールバー「挿入」→「図」→「ファイルから」・・・と進み、ファイルを指定、「OK」

これでIllustratorで作ったロゴがWord,Excelに取り込むことが出来ます。もともとWord、ExcelはEPSを読める仕様になっていますのでとても便利です。

(注意)
気をつけて欲しいのがフォントが入っているファイルはどうも読めないようです。(今までの経験から)

フォントをIllustrator上でアウトライン化してフォントの属性を無くしてしまえば読み込み可能なんですが、フォントそのままが入っているとエラーが表示されます。

そのEPSファイルって何が書いてあるんでしょうか?文章がたくさん入っている内容でしたら本件のやり方では不可です。ロゴやデザインなどだったらきっとOKのはずです。

だめもとでやってみてはいかがでしょうか?

少し本道から外れた回答を。私は会社でIllustratorでロゴ等のデザインをして(epsで保存)、それをWordやExcelに貼ったりして使うことが良くあります。

ファイルがロゴ等の小さいものであればWord,Excelで中身を見ることは可能です。
(やり方)
1.Word,Excelのツールバー「挿入」→「図」→「ファイルから」・・・と進み、ファイルを指定、「OK」

これでIllustratorで作ったロゴがWord,Excelに取り込むことが出来ます。もともとWord、ExcelはEPSを読める仕様になっていますのでとても便利です。

(注...続きを読む

Qphpエラーについて

おはようございます。
PHPにて掲示板を作成しています。
(全文は文字数制限にて掲載することができなかったため、主要な部分を掲載しております)

一通り作成した後、
ブラウザから参照したところ、
Parse error: parse error, unexpected ';', expecting '{' in /***/***.php on line 44
が出力されました。

line 44行目は「function convstr ( $str );」の行を指します。
この場合、問題となっているのは、
44行目から57行目の間と考えてよろしいのでしょうか?
もし、違っていたとするならば、どこまで追っていけばよろしいのでしょうか?

また、errorに対するデバッグ手法がありましたら、
具体的な手法を教えて頂けないでしょうか?
例:printfを*行目にprint()の構文で設置する。

どうぞよろしくお願いします。


42:<?php
43: //タグ無効化等の処理をする関数
44: function convstr ( $str );
45: {
46: //タグを無効化する
47: $str = htmlspecialchars ( $str );
48:
49: //「'」「"」を全角に置換する
50: $str = stripslashes ( $str );
51: $str = ereg_replace ( "'", "’", $str );
52: $str = ereg_replace ( """, "”", $str );
53:
54: //文字列内の改行を<br>に変換する
55: $str = ereg_replace ("\r\n|\r|\n", "<br>", $str);
56: return $str;
57: }
58:
59: //DBに接続する
60: $conn = mysql_connect ( "localhost", "root", "mysql" );
61: if ( $conn == false )
62: {
63: print ( "DB接続エラーです<br>\n" );

おはようございます。
PHPにて掲示板を作成しています。
(全文は文字数制限にて掲載することができなかったため、主要な部分を掲載しております)

一通り作成した後、
ブラウザから参照したところ、
Parse error: parse error, unexpected ';', expecting '{' in /***/***.php on line 44
が出力されました。

line 44行目は「function convstr ( $str );」の行を指します。
この場合、問題となっているのは、
44行目から57行目の間と考えてよろしいのでしょうか?
もし、違っていたとするならば、ど...続きを読む

Aベストアンサー

44行目が間違っていることを意味します。
関数の始まりは、
function convstr ( $str )
{
のように、;は不要です。

英語のエラーメッセージは、{があるべきところに;がある、ということを言っています。

QonClickに複数の関数を挿入する方法

初心者なのですがアニメーションの関数anime1、anime2、anime3を作成し、onClickに下記のように設定しました。
クリックするとアニメーション2つの設定ではは動くのですが、3つ目を設定すると動かなくなります。
通常はこのような設定はしないものなのでしょうか?
教えてください。
よろしくお願いします。
<INPUT type="button" value="START" onClick="anime1(), anime2()">・・・OKです。
<INPUT type="button" value="START" onClick="anime1(), anime2(),anime3()">・・・動きません。

Aベストアンサー

セミコロンでつなぐのが常道ですが、3つ以上なら
別途function化したほうが、可読性が高くなると
思います。

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報