phpでメールアドレスの2重チェックをする方法

このQ&Aのポイント
  • 問い合わせフォームにメールアドレスと確認用メールアドレスがある場合、phpを使用して2重チェックを実装する方法を説明します。
  • 2重チェックを行うことで、メールアドレスと確認用メールアドレスが一致しているかどうかを確認し、一致しない場合にエラーメッセージを表示することができます。
  • 必要なコードをsubmit後のphpファイルに追加し、ifとelseを使用してメールアドレスの比較を行います。
回答を見る
  • ベストアンサー

phpでのメールアドレスの2重チェックをする方法

問い合わせフォームを作成しているのですが、なんとかデータの受け渡しと入力がなかった場合の「必ず入力して下さい」はできました。 そこで、問い合わせフォームにあるメールアドレスと確認用メールアドレスを、submit後に2重チェックしたいのですが、どうしたら良いのでしょうか? メールアドレスと確認用メールアドレスが違うなら「確認用のメールアドレスと一致しておりません」と表記し、合っているなら入力したアドレスを表記したいです。 submit後のphpファイルに、なにか特別なコードを入力する必要があると思うのですが、どのようなコードか教えて下さい。ifとelseを使うのでしょうか? 宜しくお願いします。

noname#233083
noname#233083
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
回答No.1

「必ず入力して下さい」のチェックがphpでやっているのであれば else if($inputMailAddress != $checkMailAddress) とやればできそうな気がしますが… phpファイルの内容が分からないので何とも言えませんが、 もしブラウザ側のJavaScriptでやるなら、 ザックリとこんな感じでしょうか。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript"> <!-- function checkValues(){ var inputMailAddress = frm.inputMailAddress.value; var checkMailAddress = frm.checkMailAddress.value; // 入力チェック if (inputMailAddress.length == 0 || checkMailAddress.length == 0) { document.getElementById("error").style.display = "block"; document.getElementById("error").style.color = "red"; document.getElementById("error").innerHTML = "入力してください"; } // メールアドレス妥当性チェック else if (!inputMailAddress.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/) || !checkMailAddress.match(/^[A-Za-z0-9]+[\w-]+@[\w\.-]+\.\w{2,}$/)) { document.getElementById("error").style.display = "block"; document.getElementById("error").style.color = "red"; document.getElementById("error").innerHTML = "メールアドレスが不正です"; } // メールアドレス一致チェック else if(inputMailAddress != checkMailAddress) { document.getElementById("error").style.display = "block"; document.getElementById("error").style.color = "red"; document.getElementById("error").innerHTML = "メールアドレスが違います"; } else { frm.submit(); } } function onloadEvent() { document.getElementById("error").style.display = "none"; } //--> </script> <title>sample</title> </head> <body onload=""> <div id="error"></div> <form action="遷移先phpファイル?" name="frm"> <input type="text" name="inputMailAddress"><br/> <input type="text" name="checkMailAddress"><br/> <input type="button" onclick="checkValues()" value="送信"> </form> </body> </html> phpファイルの内容を提示いただければもっと細かく アドバイスできるかもしれません。

noname#233083
質問者

お礼

ありがとうございます!! 2重チェックはできました!! いろいろな方法があるのですね、こちらも参考にさせて頂きます!!

関連するQ&A

  • phpでメール2重チェック機能をする方法

    現在メールフォームを作成してまして、 どうしてもメールの2重チェックがうまくいかずご質問させていただきました。 (ちなみにphp勉強中で初心者です) 現在php内で入力したものがjsのチェック機能と連動して、 入力エラーを表示させるようにしました。 メールアドレス部分は、 //メールアドレス入力チェック if(document.mailform.mail.value==""){ window.alert('メールアドレスを入力してください'); return false; // 送信を中止 } //メールアドレス入力チェック if(document.mailform.mail_fix.value==""){ window.alert('確認用メールアドレスを入力してください'); return false; // 送信を中止 } // PCメールアドレスチェック if(document.mailform.mail.value != "" ){ if (!document.mailform.mail.value.match(/^[A-Za-z0-9.-]+[\w-]+@[\w\.-]+\.\w{2,}$/)){ window.alert('メールアドレスをご確認ください'); document.mailform.mail.focus(); return false; // 送信を中止 } ここまで作成し、入力エラーまではでるようになりました。 ただ2重チェックがうまくいかず困っています。。。 ifelseというのでやるようなのですが、、、 わからなくなったので是非教えていただけますでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 問い合わせフォームの表の中で値を受け渡しする方法

    Webサイトでの問い合わせフォームを作成しているのですが、添付した図のように表の中でデータを受け渡しする方法がわかりません。 添付している図では、「名前」の1項目だけですが、この他に「メールアドレス」、「メールアドレス確認」、「問い合わせ内容 ※セレクトボックス」、「内容」の項目があります。 一応、phpの本を読んで、データの受け渡しには、次のようなコードを入力する必要があることはわかっているのですが、表の中でデータを受け渡しするためには、phpファイルのどこに入力したら良いのかわかりません。 ちなみに、submit後の表は、submit前の表と、少しだけデザインが違います。その場合、特別な方法があるのでしょうか? <?php $name=$_POST['name']; if($name=='') { print'入力されておりません。'; } else { print $name; } ?>

    • ベストアンサー
    • PHP
  • メールアドレス確認 javascriptについて

    入力フォームのメール項目にて 1.メールアドレスチェック 2.メールアドレス(確認用) のアラート設定を行いたいのですが、下記、javascriptの変更をどのように行っていいかが分からず困っています。 どなたかご回答お願いできますでしょう!? ------javascript部分-------------- <script language="JavaScript" type="text/javascript"> function CheckForm(theform) { var FormOK = false; if (theform.email1.value == "") { FieldControl(theform.To, "「メールアドレス」を入力してください。"); }else if (theform.email2.value == "") { FieldControl(theform.To, "「メールアドレス(確認用)」を入力してください。"); }else if (theform.email2.value == "") { FieldControl(theform.To, "入力されたものが一致するように入力してください。"); }else { FormOK = true; } return FormOK; } function FieldControl(element, message) { alert(message); } </script> ------HTML部分-------------- <form action="" method="post" name="theform" onsubmit="return CheckForm(this);"> メールアドレス:<input size="40" name="email1">(半角英数字)<br><br> 確認用】:<input size="40" name="email2"><br><br> <input value="確認画面へ" name="submit" type="submit"> </form> 宜しくお願い致します。

  • PHPのメールフォーム(お問合せフォーム)について

    PHPのメールフォーム(お問合せフォーム)について 今、PHPでメールフォームを作っています。 (よくあるお問合せフォームです。) 書籍やウェブサイトを参考に 見よう見まねで、一通り作ってみました。 ただ、メールフォームを作るのは初めてなので 自分が作ったのものが公開できるレベルなのか (一般的なレベルに達しているかどうか)不安な感じです。 そこで、メールフォームについて詳しい方いらっしゃいましたら メールフォームを作る際に、押さえておくポイントについて 箇条書きで構いませんので、簡単に教えていただけないでしょうか。 例えばこんな感じで↓ ------------------- ・データの受け渡しはセッションを使う ・入力されたデータは必ずチェック ・Nullバイト攻撃対策をする ・セッションハイジャック対策する -------------------- ■私が作ってみたメールフォームの入力項目は下記のとおりです。 ------------------- <入力項目> 名前 電話番号 郵便番号 住所 メールアドレス メールアドレス(確認のため2回入力) お問合せ内容 ------------------- ■流れとしては下記のとおりです。 ------------------- 1)入力画面 ↓ 2)確認画面 ↓ 3)完了画面 ↓ 4-1)サイト運営者に入力内容が記載されたメールを送信。 4-2)ユーザーにサンクスメールを送信。 -------------------

    • ベストアンサー
    • PHP
  • phpでアドレス形式をチェックする方法

    http://php.eweb-design.com/1301_mail.html さんからアンケートフォームをダウンロードさせて頂き メールアドレスの形式チェックをかけたいと思っています。 『php アドレス形式チェック』などで検索してみたのですが 単体のコードは出てくるのですが、私がほぼ無知なために どこに付け加えたらいいのかわからずでphpファイルの 未入力項目のチェックのあたりにつけてみましたが エラーの連続で自分ではお手上げ状態でした・・・ アドレス形式チェックを参考にしたのは下記のurlです。 http://homepage3.nifty.com/wowarlly/php2.html 詳しい方のお力を貸して頂きたいのですがどのようにすれば 動作するのでしょうか? 宜しくお願い致します!

    • ベストアンサー
    • PHP
  • 確認メールアドレスの記述

    PHP初心者です。 お問い合わせのフォームを作成しているのですが、その中でメールアドレスと確認のメールアドレスの欄を設けました。 …………………………………………………………………………………… <INPUT type="text" name="ご返信の連絡先" size="35" value="<?= $_POST['ご返信の連絡先'] ?>"> <INPUT type="text" name="確認メールアドレス" size="35" value="<?= $_POST['確認メールアドレス'] ?>"> …………………………………………………………………………………… 次でこのメールアドレスと確認のメールアドレスが一致するかどうかを確認したいのですが。上手く機能しません。 …………………………………………………………………………………… if($_POST['ご返信の連絡先']!=$_POST['確認メールアドレス']) { ご返信の連絡先と確認メールアドレスが一致しておりません。 <BR> <FORM method="POST" action="sample.php">   <INPUT type="submit" value="ご記入ページへ戻る" /> </FORM> } …………………………………………………………………………………… ($_POST['ご返信の連絡先']!==$_POST['確認メールアドレス']) の記述でご返信の連絡先と確認メールアドレスが違っているときの条件を表しているのでしょうか? 今の状態でしたら、ちゃんと記入していても「ご返信の連絡先と確認メールアドレスが一致しておりません。」と表示がでてしますのですが。 何か原因がありましたら、教えてください。お願いします。

    • ベストアンサー
    • PHP
  • phpで入力フォームに顧客が入力した情報を直接折り

    phpで入力フォームに顧客が入力した情報を直接折り返しメールでの受け取りについて。 下記のURLでの入力フォーム→確認画面→折り返しメールのコードを参考に真似して書いているのですが、 https://www.web-officer.com/php/how-to-make-inquiry-form.php URLの一番下の説明submit.phpファイルについての23行目のコードについて以下のように説明しているのですが、 一個目の$flg = はHTMLコードで作った入力フォームに入力されたメールアドレス宛て(=お問い合わせフォームに入力したお客様)にメールを飛ばす為の設定です。 メールの送り元はexample@example.comということにし、メールのタイトルは「【Web担当者の作り方】です。お問い合わせいただきましてありがとうございます!」になるよう設定しています。 要するにお客様の控え用としてお客様にメールを飛ばすということですね。 実際に使用する際には任意のメールアドレスに書き換えて下さいね。 とコードの書き方の説明に書かれているのですが、「 実際に使用する際には任意のメールアドレスに書き換えて下さいね。」とありますが、お客さまが入力したメールアドレスは多様にあるため、入力したメールアドレスは分かりませんよね? 実際に使用する際には任意のメールアドレスに書き換えて下さいね。 とは任意のどんなメールアドレスなのでしょうか? お客様によってアドレスは違いますよね? 様々な顧客が多様なメールアドレスを使うことを想定した場合、この場合どんなメールアドレスを書いたらよいのでしょうか? 回答よろしくお願いします。

    • 締切済み
    • PHP
  • php5のフォーム

    サーバーの仕様が変わってフォームが動かなくなって困っています。 現在のフォームはphp4で、仕様はphp5にしか対応しなくなったということです。 古いコードが使われているからだとは思いますが、 全くの初心者の私には何をどう書き換えたらいいのかさっぱりで、質問に至った次第であります。 現在の状況を説明しますと、フォームに内容を入力して、 エラー画面、確認画面まではしっかり動くのですが、 ”この内容で送信する”ボタンで 問い合わせフォーム真っ白になってしまいます。 ソースは以下です。 ・mail.php========================= <? include_once "func.php"; include_once "mail.pear.php"; class MainClass{ function MainClass(){ switch( $_REQUEST['type'] ){ case "step1": if( $this->Chk_Input() ){ $_REQUEST['act'] = ""; break; } break; //メール送信 case "step2": // 管理者にメール送信 $msg = "お問い合わせフォームより以下の内容が送信されました。\n\n" ."内容をご確認の上、ご担当者様へご連絡をお願いいたします。\n\n\n" ."お名前 : ".$_POST['name']."\n" ."メールアドレス : ".$_POST['mail_ad']."\n" ."お問い合わせ内容 : ".$_POST['other']."\n"; new MailSendByMTA( "**@**.jp" , "**@**.jp" , "【お問い合わせ内容】" , $msg , "" , 0 ); // 登録者にメール送信 $msg = "".$_POST['name']." 様\n\n" ."このたびは「お問い合わせ」をいただき、誠にありがとうございます。\n" ."お問い合わせ内容をご確認ください。弊社スタッフより改めてご連絡いたします。\n\n" ."お名前 : ".$_POST['name']."\n" ."メールアドレス : ".$_POST['mail_ad']."\n" ."お問い合わせ内容 : ".$_POST['other']."\n\n\n\n" ."(株)******\n\n" ."〒111-1111 **県**市****123-456\n" ."電話:000-000-0000 FAX:000-000-0000\n"; new MailSendByMTA( "**@**.jp" , $_POST['mail_ad'] ,"【お問い合わせ内容】" , $msg , "" , 0 ); pageJump( $_SERVER['PHP_SELF']."?act=step2" ); break; } switch( $_REQUEST['act'] ){ case "step1": include_once "review.html.php"; break; case "step2": include_once "thanks.html.php"; break; default: include_once "form.html.php"; } } function Chk_Input(){ if( chkErr_Func( $_POST['name'],0 ) ){ $this->errTxt .= "お名前を入力して下さい。<BR>"; } if( chkErr_Func( $_POST['mail_ad'],0 ) ){ $this->errTxt .= "メールアドレスを入力してください。<BR>"; } else{ if( chkErr_Func( $_POST['mail_ad'],3 ) ){ $this->errTxt .= "メールアドレスに誤りがないかご確認下さい。<BR>"; } else{ if( $_POST['mail_ad'] != $_POST['mail_ad2'] ){ $this->errTxt .= "メールアドレス入力確認の内容がメールアドレスの内容と異なっています。<BR>"; } } } if( chkErr_Func( $_POST['other'],0 ) ){ $this->errTxt .= "お問い合わせ内容を入力してください。<BR>"; } return ( $this->errTxt != "" ) ? true : false; } } new MainClass(); ?> 長々とすいませんが、ご教授ください。 お願い致します。

    • 締切済み
    • PHP
  • phpを使ってのメール送信について

    会社のホームページを任されて、phpでメールフォームを作成中です。 phpは本を購入したり、サイトを閲覧しながら勉強中ですが時間が取れず、まださほど詳しくありません。 1.情報入力→2.確認画面→3.お礼画面 と3頁を作ってそれぞれ確認しましたところ、入力情報は受け渡しができました。 その後、メールアドレスへ入力していただいた情報を送るプログラムを見様見真似で作ってみたところ動かなくなってしまいました。 どこがおかしいのか添削・ご意見(できれば初心者にもわかるように)いただけないでしょうか。 よろしくお願いします。 <p>入力内容</p> <form method="POST" action="(3.のページへのパス)"> <table border="1" width="80%" cellspacing="5"> <tr><td align="right" width="20%">お名前:</td> <td align="left" width="80%"><?php print($_POST['name']);?></td></tr> <tr><td align="right">e-mail:</td> <td align="left"><?php print($_POST['mail']);?></td></tr> <tr><td align="right">お問い合わせ:</td> <td align="left"><?php print($_POST['comment']);?></td></tr> </table> <p></p> <input type="submit" name="Submit" value="送信"> </form> ↑ここまでが確認画面でこの下にすぐ続けて <?php $name = $_POST['name']; $mail = $_POST['mail']; $comment = $_POST['comment']; $to = '(送信先メールアドレス)'; $subject = 'サイトからの問い合わせ内容'; $massage = '$name . $mail . $comment'; if(!$_POST['submit']){ mb_language("Japanese"); mb_internal_encoding("UTF-8"); $header = 'From: ' . $from . "\n"; $to = mb_encode_mimeheader(mb_convert_encoding($name, "JIS", "UTF-8")) . ' <' . $mail . '>'; $param = '-f' . $from; mb_send_mail($to, $subject, $message, $header, $param); } ?> ↑2頁めに挿入したメールへの送信指示の(つもりの)部分です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPによる問い合わせフォームのデーターの受け渡し

    Webサイトを作成しており、現在は問い合わせフォームに取り組んでおります。 そこで、問い合わせフォームで入力したデータを送信した後の、確認画面が上手くできません。 PHPのファイルには以下のように記載しました。 しかし、実際のブラウザの問い合わせフォームのページから送信ボタンを押しても、全く何も表示されておりません。真っ白のままです。 そういえば、問い合わせフォームのページ全体のデザインのまま、データを引き継ぐにはどうしたら良いのでしょうか? PHPファイルに何か特別なコードを記載する必要があるのでしょうか? ちなみに、htmlファイルとphpファイルのhead情報は同じです。 何かアドバイスをして下さる方、お願いします!! <?php $name=$_POST['name']; if($name=='') { print'入力されておりません。'; } else { print $name; } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう