• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フリーのメールフォームのカスタマイズ)

質問:フリーのメールフォームのカスタマイズで困っています

mikemike7の回答

  • mikemike7
  • ベストアンサー率87% (97/111)
回答No.1

選択肢にはあるのに、選択したら怒られる。これいかに? まあ、以下の訂正でお試し下さい。 >'__Error_Input_Data__'=> '必須項目です' >,'__Error_Input_Data__'=> 'いいえの方は受付できません' 同じキーが2つ合ったらうまく動作しないのでは? ,'__Error_Input_Data__'=> 'いいえの方は受付できません' を ,'__Error_SelectNo_Data__'=> 'いいえの方は受付できません' に変更 254行目付近 } else { $_SESSION['SFM'][$name] = $value; } を } elseif ($name == "yesno" && $value == "いいえ") { $_SESSION['SFM'][$name] = '__Error_Input_Data__'; $error = 1; } else { $_SESSION['SFM'][$name] = $value; } に変更します。 elseif ($name == "yesno" && $value == "いいえ") { $_SESSION['SFM'][$name] = '__Error_SelectNo_Data__'; $error = 1; } を入れただけです。 yesnoの部分にselectで指定したname値を入れます。

-7pomezo
質問者

お礼

ありがとうございます!!!! 早速試してみます! もっと勉強しなくちゃダメですね。

-7pomezo
質問者

補足

せっかく教えて頂きましたが、 「いいえ」を選択しても 「必須項目です」というエラーメッセージになってしまいました。

関連するQ&A

  • phpのシンプルなメールフォーム

    あるサイトにて、単一phpのメールフォームのソースをコピーし、使用としましたが、 設定したメールアドレスに、送信ボタンを押しましたが、 受信されません。  ・送信後、「メールを送信しました」と表示されます。  ・送信のあて先は、何も反応なし。  ・ソースの「●●@●●」はダミーです。 以下ソースです。原因がわかりますでしょうか。ご教授のほどよろしくお願いします。 ―――――――――――――――――――――――――――――――――――― <?php // 送信フラグ $send_flg = false; // エラーメッセージ $err_msg = array(); // 送信ボタンを押した後の処理 if ($_POST["post_flg"]) { // エラー if ($_POST["name"] == "") { $err_msg[] = "「お名前」は必須です"; } if ($_POST["email"] == "") { $err_msg[] = "「メールアドレス」は必須です"; } // エラーが無ければ送信 if (count($err_msg) == 0) { // 宛先 $mail_to = "●●@●●"; // 送信元アドレス $mail_from = "form@example.com"; // 件名 $mail_subject = "メールフォームから送信がありました"; // 本文 $mail_body = ""; $mail_body.= "■お名前\n".$_POST["name"]."\n\n"; $mail_body.= "■メールアドレス\n".$_POST["email"]."\n\n"; $mail_body.= "■コメント\n".$_POST["comment"]; // 送信処理 mb_language("Japanese"); mb_internal_encoding("UTF-8"); mb_send_mail($mail_to, $mail_subject, $mail_body, "From: <".$mail_from.">"); $send_flg = true; $_POST = array(); } } ?> <!DOCTYPE HTML> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>メールフォーム</title> </head> <body> <?php // 初期フォーム表示 if (!$send_flg) { ?> <h1>メールフォーム</h1> <?php // エラーメッセージがある場合 if (count($err_msg) > 0) { ?> <p style="color:red;"> <?php foreach ($err_msg as $val) { ?> ※<?php echo $val ?><br> <?php } ?> </p> <?php } ?> <form action="mail.php" method="post"> <p> お名前<br> <input type="text" cols="30" name="name" value="<?php echo $_POST["name"] ?>"><br> </p> <p> メールアドレス<br> <input type="text" cols="30" name="email" value="<?php echo $_POST["email"] ?>"><br> </p> <p> コメント<br> <textarea name="comment" cols="50" rows="10"><?php echo $_POST["comment"] ?></textarea><br> </p> <input type="submit" name="post_flg" value="送信する"><br> </form> <?php // メール送信後の表示 } else { ?> <br><br><br><br>メールを送信しました。<br> <?php } ?> </body> </html> ――――――――――――――――――――――――――――――――――――

    • ベストアンサー
    • PHP
  • メールフォームが動いてくれない。

    初心者ながら以下のようなメールフォームを書いたのですがうまく動いてくれません。どうしてなのでしょうか? ----hoge.php---- <?php $mail = $_POST['mail']; $address = $_POST['add']; if(empty($mail)){ $1 = "入力してください。"; }elseif(empty($address)){ $2 = "入力してください。"; }else{ //メール送信 echo("送信しました。"); exit; } ?> <form action="hoge.php" method="post"> E-mail <inputtype="text" name="add"><?=$1?> Message <input type="text" name="mail"><?=$2?> <input type="submit" value="send!!"> </form> ----- 一応、メールアドレスや本文が未入力の場合、エラーメッセージを出すようにしています。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPによるメールフォームの作成について

    質問致します。文字制限があるので適所のみの抜粋ですがよろしくお願いします。 ある某PHPの参考書の付録CD-ROMにフォームメールのファイルが収められていたのですが、以下は入力フォームのformmail.html とエラー処理を表す部分のformmail.phpの抜粋です。 ./formmail.htmlにすべて入力してもエラーが出てしまいます。formmail.phpの必須項目のチェックおよびエラー時の処理のスクリプト文でおかしいところはあるでしょうか?市販されている参考書のCD-ROMをそのままコピーしたものなので動作しない事自体驚いています。どうぞよろしくお願い致します。 *formmail.html(簡潔に要約してあります) <FORM method="post" action="./formmail.php"> 名前(必須):<INPUT type="text" name="namae" size="20"> 電話番号:<INPUT type="text" name="tel" size="20"> E-mail(必須)<INPUT type="text" name="email" size="20"> </FORM> *formmail.php(必要箇所を抜粋) // 必須項目のチェック if (empty($namae)||empty($email)){ $err_message = "未入力の必須項目があります。<BR>\n"; } // エラー時の処理 if (!empty($err_message)){ echo "<HTML>\n"; echo "<HEAD>\n"; echo "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=EUC-JP\">\n"; echo "<TITLE>エラー</TITLE>\n"; echo "</HEAD>\n"; echo "<BODY>\n"; echo "<H1>エラー</H1>\n"; echo $err_message; echo "ブラウザの戻るボタンで戻り正しく入力して下さい\n"; echo "</BODY>\n"; echo "</HTML>"; exit; } // メール Body(本文)の設定 $mail_body = " 名前 - $namae 電話番号 - $tel E-mail - $email ";

    • 締切済み
    • PHP
  • PHPのメールフォームについて

    PHPの無料で使えるメールフォームを探しています^^ いろいろ探したんですが、見つかりません。 もし、ご存知でしたら、ヒントでもかまいません。教えてもられると、助かります。 ・メールアドレスを記入する際、再入力フォームに異なるメールアドレスを入れると、注意を出す。 ・必須項目設定が記入されていない場合、注意を出す。 この2つができる、PHPのメールフォームを探しています。 どうぞ、よろしくお願いします^ ^) kent-webさんのPost mailのPHP版のようなものがあると、助かります。 http://www.kent-web.com/data/postmail.html

    • ベストアンサー
    • PHP
  • メールフォームについて

    HPのリニューアルに際して、form2mailを使ったフォーム部分も変更し、入力必須項目を作りたいと考えております。 ただ配布ページのFAQを見ても、バージョンが古すぎるのか(手に入れたのは約5年前です)指定されている方法を試しても、必須項目に変更されません。 具体的には、 <input type=hidden name="_indispen" value="***"> フォームのHTMLに上記のタグを書きましたが、何も変わりませんでした。 cgiの該当すると思われる部分を下記に表記致します。 どなたか分かる方がいらっしゃいましたら、ご教授願えますでしょうか。 #----------------------------------------------------------------- # 入力データの入力チェック #----------------------------------------------------------------- undef(@ERROR); foreach $chk_tag (keys %necessary_list){ if ( !defined($import{$chk_tag}) ){ # 必須データがない push(@ERROR, $necessary_list{$chk_tag}); } elsif ( length($import{$chk_tag}) < 1 ){ # 必須データの文字数0 push(@ERROR, $necessary_list{$chk_tag}); } } &error_exit('missing_field', @ERROR) if (defined(@ERROR)); #-----------------------------------------------------------------

    • ベストアンサー
    • CGI
  • テキスト・セレクトフォームにて何も入力されていない状態ではフォームの色を変えるためには

     Rubyを使用して掲示板のシステムを作成しています。 必須項目 <input type="text" name="textfield"><br> 任意項目 <input type="text" name="textfield2"><br> 必須項目 <input type="text" name="textfield3"><br> 必須項目 <textarea name="textarea"></textarea><br> 必須項目 <select name="select"></select> と複数のテキストフォームとセレクトフォームがあり,その一部が必須項目です。そこで必須項目と分かるようにフォームの入力部分を赤く塗り,何か文字が入力されたら(何か選ばれたら),元の白の状態にしたいと考えています。  このようなことは実際可能なので使用か。ご教授お願いします。

    • ベストアンサー
    • HTML
  • フォームの「戻るボタン」で内容が消えてしまう・・・

    PHPを勉強しながら、ブログをやってみたいと考えている素人です。 ネット上のフリーのフォームを利用させて頂き、問合せページを作ってみたのですが 確認ページの戻るボタンを押すと、入力が消えて、始めからやり直しになってしまいます。 session を利用しているようなのですが、素人ゆえsessionの仕組みが何とか解る程度で どこを修正して良いのか解りません。 「session_cache_limiter(‘none’);」 と言うものが、キーポイント?のようなのですが、色々と試しておりますが 一向にうまく行きません、何卒ご指導お願い致します。 以下、利用させて頂いているフォームの一部 配布元のサイト様(http://www.sapphirus.biz/php/sformmail/) 処理の流れ sformmail.html(入力) ≫ sformmail.php(入力チェック) ≫ confirm.php(確認) ≫ sformmail.php(送信[template.php/reply.php]) ≫ completion.html(完了) ○sformmail.php(入力チェック) // 設定 $mail_to = 'sample@mail.address'; // フォームデータを受け取るメールアドレス $mail_subject = 'S.B.フォームメール送信'; // 受け取る時のSubject(件名) $reply_subject = 'S.B.フォームメールより自動返信です'; // 送信者へ自動返信のSubject(件名) $mail_bcc = ''; // BCCで受け取りが必要な場合は設定 $internal_enc = 'UTF-8'; // 文字エンコード // メイン session_start(); if (!extension_loaded('mbstring')) Err('マルチバイト文字列関数が利用できません'); if (!$mail_to) Err('受取先メールアドレスが設定されてません'); if (!$_POST) Err('POSTデータがありません'); mb_language('ja'); mb_internal_encoding($internal_enc); $x_mailer = 'Sapphirus.Biz Formmail Ver. 1.40 (PHP/' . phpversion() . ')'; $mode = $_POST['mode']; switch ($mode) { case 'SEND': // メール送信 if (!$_SESSION) Err('セッションデータがありません'); // メールヘッダ if (!$_SESSION['email']) $mail_from = 'S.B.Formmail'; else $mail_from = $_SESSION['email']; $mail_header = "From: {$mail_from}\n"; if ($mail_bcc) $mail_header .= "Bcc: {$mail_bcc}\n"; $mail_header .= "X-Mailer: {$x_mailer}"; --------------文字制限のため以下省略---------------- ○confirm.php(確認) <?php //セッションを利用するのでここは削除しないで下さい session_start(); if (SID) Err('Cookieを有効にして下さい'); if (!$_SESSION) header('Location: completion.html'); function Err($err) { echo <<< EOM <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>エラー:$err</title></head> <body style="font-size: 12px; line-height: 1.8em;"> <strong>エラー : </strong>$err<br> <input type="button" value="戻る" onclick="history.back();"> ----以下省略--- 他にも、入力用や送信完了用のhtmlファイル等ありますが 上記が関連しているコードだと思います。どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • PHP
  • メールフォームで必須項目の仕方

    メールフォームで必須項目を入力しないと送信できないようにするにはどうすればいいでしょうか? 現在は以下のとおりに書いてありますが、必須項目に書いてなくても送信できてしまいます。 <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> また必須項目が未入力のときにエラーメッセージ(「お名前が未入力です。」など)を出したいのですがどのようにすればいいですか?

    • ベストアンサー
    • CGI
  • 携帯用phpフォームの自動返信メールが届かない

    いつもとてもお世話になっています。 昨日http://oshiete1.goo.ne.jp/qa5074566.htmlの質問でも助けていただいた者です。連日で申し訳ないのですが、お知恵を貸してください。 携帯サイト内にhttp://magical-form.com/のフォームを使用させていただいています。お尋ねしたいのはフォームのカスタマイズについてです。 サンプルで用意されているものを管理者メールアドレスのみ変更し、動作確認用にPC・モバイル両方で試してみました。 すると、PCサイト用にはフォーム入力者への自動返信メール、管理者へのお知らせ自動メールは届くのですが、モバイルの方は管理者宛メールしか届かないのです。 悩みながらもカスタマイズし、フォームの質問項目を増減させ、順序を入れ替えました。携帯PCともに入力→送信完了はうまくいきますが、やはり管理者宛メールのみが届き、フォーム入力者へのメールが届かないのです。カスタマイズすると、携帯だけでなく、PCの方も届かなくなりました。 カスタマイズ方法は何度も確認したつもりです。 しかし携帯用についてはデフォルトのものから既に自動返信が届かないので、問題は他にあるのかも?と思っています。 どうすればカスタマイズしたフォームにも送信者宛自動返信が届くようにできるのでしょうか? 配布先でも質問してみたのですが、今のところご連絡いただいていません。カスタマイズしたソースを掲載させていただきます。 携帯用テンプレート(上記配布先でmb.htmlと言われるページ/フォーム部分のみ) <form action="./" method="POST" id="m-form"> <dl> <dt style="color:#116425">■お名前</dt> <input type="text" name="name" size="20"> <dt style="color:#116425">■フリガナ</dt> <input type="text" name="kana" size="20"> <dt style="color:#116425">■性別</dt> <input name="sex" type="radio" value="男性"> 男性 <input name="sex" type="radio" value="女性"> 女性 <dt style="color:#116425">■生年月日</dt> <input type="text" size="4" maxlength="8" name="born[0]" istyle="4" mode="numeric">年 <input type="text" size="2" maxlength="4" name="born[1]" istyle="4" mode="numeric">月 <input type="text" size="2" maxlength="4" name="born[2]" istyle="4" mode="numeric">日 <dt style="color:#116425">■電話番号</dt> <input type="text" name="tel[0]" size="5" istyle="4" mode="numeric">-<input type="text" name="tel[1]" size="5" istyle="4" mode="numeric">-<input type="text" name="tel[2]" size="5" istyle="4" mode="numeric"> <dt style="color:#116425">■メールアドレス</dt> <input type="text" name="email" size="20" maxlength="100" istyle="3" mode="alphabet"> <dt style="color:#116425">■連絡希望時間</dt> <select name="time[0]"> <option value="15:00">15:00</option> <option value="16:00">16:00</option> <option value="17:00">17:00</option> </select>から <select name="time[1]"> <option value="16:00">16:00</option> <option value="17:00">17:00</option> <option value="18:00">18:00</option> </select> <br /> <input type="submit" value="送信確認"> <input name="reset" type="submit" value="リセット"> </dl> </form> カスタマイズに必要とされているuser_conf.datファイル (1行1項目でnameタグ<>onなら必須、offなら必須でない<>項目見出し と記載するルールです。) name<>on<>お名前 kana<>on<>フリガナ sex<>off<>性別 born<>off<>生年月日<>年,月,日 tel<>on<>電話番号<> -, - email<>on<>メールアドレス time<>off<>連絡希望時間<>から, いかがでしょうか? それとも上記2種でなく、phpファイルの記述を改める必要があるのでしょうか?アドバイスいただけると大変助かります。 完成まで時間があまりなく、こちらにお世話になってしまい申し訳ありません。些細なことでも全く構いません。どうかご回答お願い致します。

    • ベストアンサー
    • PHP
  • メールフォームについて質問です。

    メールフォームを作成したのですが、今まではメールフォームから送ると、受け取り用のアドレスでは送信者の名前が各々表示されていたのですが、現在、受け取り用のメーラーではpiyo@hoge.co.jp(当社のアドレス)から送られてくる様になりました。 したがって、受信メッセージがまとまってしまいます。 説明が難しいので画像を添付します。 画像は受け取り用のメールソフトです。 4 と表示されていますが、これがまとまっている状況です。 メールが送られてくるたびに5,6,7...と増えて行きます。 これはどのように解消すればよいのでしょうか。 お力添えの程よろしくお願いいたします。 <form action="http://www.piyo.co.jp/CGI/postmail/postmail.cgi" method="post"> <input type="hidden" name="match" value="e-mail e-mail2" /> <input type="hidden" name="need" value="お名前 フリガナ e-mailアドレス 確認用アドレス プライバシーポリシーに同意 送信内容" /> <input type="hidden" name="mailto" value="piyo@hoge.co.jp" /> <input type="hidden" name="subject" value="お名前" />■お名前<span class="red">【必須】</span><br /> <input type="text" name="お名前" size="45" maxlength="50" /><span class="sitemap_link">例:山田 太郎</span><br /> ■カナ<span class="red">【必須】</span><br /> <input type="text" name="フリガナ" size="45" maxlength="50" /><span class="sitemap_link">例:ヤマダ タロウ</span><br /> <br /> ■幼稚園名 / 会社名<br /> <input type="text" name="会社名" size="45" maxlength="50" /><span class="sitemap_link">例:株式会社山田</span><br /> <br /> ■E-mail アドレス<span class="red">【必須】</span><br /> <input type="text" name="e-mailアドレス" size="45" maxlength="50" /><span class="sitemap_link">例:xxx@xxx.co.jp</span><br /> ■E-mail アドレス (再度入力)<span class="red">【必須】</span><br /> <input type="text" name="確認用アドレス" size="45" maxlength="50"/><span class="sitemap_link">例:xxx@xxx.co.jp</span> <br /> <br /> ■お問い合わせ内容をご記入ください<span class="red">【必須】</span><br /> <textarea name="送信内容" rows="8" cols="70"></textarea> <br /> <input id="checkboxPrivacy" name="プライバシーポリシーに同意" value="プライバシーポリシーに同意します" type="checkbox" /><span class="sitemap_link2">プライバシーポリシーに同意する<span class="red">【必須】</span></span><br /> <br /> <input type="submit" value="送信" /> <input type="reset" value="リセット" /> よろしくお願いいたします。

    • ベストアンサー
    • HTML