• 締切済み

メールアドレスをフォーム入力する際

メアドをフォームで入力する際に下記ソースだと、全角文字や@無しなどがDBに入ってしまいます、どうやってメアドだけ入力出来るようにするのでしょうか? <?php $EMAIL = $_POST["EMAIL"]; $PWD = $_POST["PWD"]; $LUCKYNAME = $_POST["LUCKYNAME"]; $SEXTYPE = $_POST["SEXTYPE"]; $DateofBirthYear = $_POST["DateofBirthYear"]; $DateofBirthMonth = $_POST["DateofBirthMonth"]; $DateofBirthDay = $_POST["DateofBirthDay"]; if($EMAIL == ""or not"@" || $PWD == "" || $LUCKYNAME == "" || $SEXTYPE == "" || $DateofBirthYear == "" || $DateofBirthMonth == "" || $DateofBirthDay == "") { ?> <HTML> <head> </head> <body> <P>未入力もしくは未選択の項目があります。</p> ブラウザのバックボタンで戻り入力内容を確認してください。 <?php } else { /* campaign.htmlからの送信データに未入力がない場合 */ ?> <p><b>間違いがないか確認して下さい。</b><p> <form action="campaign3.php" method="post"> <table> <tr> <td>メールアドレス</td> <td><?= $EMAIL ?></td> </tr>

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • goojovi
  • ベストアンサー率100% (1/1)
回答No.2

正規表現の具体的な例ですが、 こんな感じの関数とか作っとくと 使いまわせてべんりですよ。 function mail_check($EMAIL) { if(preg_match("/^[a-zA-Z0-9\"\._\?\+\/-]+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/", $EMAIL)){ return true; } else { return false; } }

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

正規表現を使えば、メールアドレスの書式にあっているかぐらいはチェックできます。 正規表現は文字列の書式などをチェックする時に利用します。 検索ワード: php 正規表現 メールアドレス で、結構な数がひっかかります。

xxxumaxxx
質問者

お礼

早速のご返答ありがとうございます、なんとか頑張ってみます。 ほかにも参考になりそうなものありましたら、宜しくお願い致します。

関連するQ&A

  • メールフォームについて

    <HTML> <HEAD> <TITLE></TITLE> <SCRIPT language="JavaScript"> <!-- function startNavi(){ document.myform.Browser.value=navigator.appName; document.myform.Version.value=navigator.appVersion; } // --> </SCRIPT> </HEAD> <BODY> <CENTER> <FORM action="mailto:送り先Eメールアドレス" method="post" enctype="text/plain" name="myform" onSubmit="startNavi()"> <INPUT type="hidden" name="Browser"> <INPUT type="hidden" name="Version"> <TABLE border="0"> <TR><TD>名  前:</TD><TD><INPUT name="名前" size="20"></TD></TR> <TR><TD>Eメール:</TD><TD><INPUT name="Eメール" size="20"></TD></TR> <TR><TD>コメント:</TD><TD><TEXTAREA name="コメント" rows="5" cols="15"></TEXTAREA></TD></TR> </TABLE><BR> <INPUT type="submit" value="送信"> </FORM> </CENTER> </BODY> </HTML> と入力すれば、ブラウザ情報、名前、e-mail、コメントの情報がメールで送信されてきます。 こんな感じで、送信者のIPアドレスも記載されるようにするにはどうやってJavaScriptなどを記述すればいいでしょうか? 他の情報も記述することができるのならば、是非是非教えて下さい。(サイトでもOK)

  • メールフォームのPHPについて質問です。

    以下のようなメールフォームを作ったのですが何故か値の受け渡しが上手くいきません。 以前どこかのサイトを参考にして作ったもので別で自分の作ったサイトでは問題なく受け渡しができたのですが、なぜか今回はできません。 自分が作って成功したサイトをそのままサーバーにアップロードしても出来ないのがよくわからないのです。 どうすれば受け渡しがうまくいくのでしょうか? どなたか知恵を分けていただきたいです。何卒よろしくお願いいたします。 ▼ここからinquiry.html▼ <div id="main_inquiry"> <div id="box_inquiry"> <h1>お問い合わせ</h1> <div id="form"> <form method="POST" action="inquiry_check.php"> <p class="form">お名前</p> <p class="text"><input type="text" name="name" size="50"><br></p> <p class="form">電話番号</p> <p class="text"><input type="text" name="tel" size="50"><br></p> <p class="form">Eメール</p> <p class="text"><input type="text" name="email" size="50"></p><br> <p class="form">備考</p> <p class="text"><textarea name="bikou" cols="50" rows="10"></textarea></p> </div> <!---------form-END------------------------------> <div id="submit"> <input type="submit" value="確認" class="submit"> <input type="reset" value="リセット" class="reset"> </div> <form method="POST" action="inquiry_check.php"> </div> ▲inquiry.html終了▲ ▼ここからinquiry_check.php▼ <div id="box_check"> <h1 class="headding11">問い合わせチェック</h1> <?php $name=htmlspecialchars($_POST["name"]);// if ($name == ""){ $show_name = "<font color='#000'><strong>名前が入力されていません</font></strong>"; $err_flg = 1; } else { $show_name = $name; } $tel=htmlspecialchars($_POST["tel"]);// if ($tel == ""){ $show_tel = "<font color='#000'><strong>電話番号が入力されていません</font></strong>"; $err_flg = 1; } else { $show_tel = $tel; } $email=htmlspecialchars($_POST["email"]);// if ($email == ""){ $show_email = "<font color='#000'><strong>e-mailが入力されていません</font></strong>"; $err_flg = 1; } else { $show_email = $email; } $bikou=htmlspecialchars($_POST["bikou"]);// if ($bikou == ""){ $show_bikou = "<font color='#000'><strong>備考が入力されていません</font></strong>"; $err_flg = 1; } else { $show_bikou = $bikou; } if ($err_flg == 1){ $show_form = ""; } else { $show_form = " <input name='name' type='hidden' value='". $name ."'> <input name='tel' type='hidden' value='". $tel ."'> <input name='email' type='hidden' value='". $email ."'> <input name='bikou' type='hidden' value='". $bikou ."'> <input name='submit' type='submit' value='送信' class='soushin'> "; } ?> <form name="mailform" method="post" action="inquiry_finish.php"> <P align="center"><b class="kakunin">お客様情報確認</b></P> <table class="check" width="685px" border="0" cellspacing="1" cellpadding="5"> <tr> <td bgcolor="#EBEBEB" width="200"> 氏名</td> <td width="540"><? echo $show_name ?></td> </tr> <tr> <td bgcolor="#EBEBEB"> 電話番号<font color="#FFFFFF">  </font></td> <td><? echo $show_tel ?></td> </tr> <tr> <td bgcolor="#EBEBEB"> 電子メール</td> <td ><? echo $show_email ?></td> </tr>  <tr> <td bgcolor="#EBEBEB"> お問い合わせ内容</td> <td ><? echo $show_bikou ?></td> </tr> </table> <div align=""> <? echo $show_form ?> <input name="submit" type="button" value="戻る" class="mouse" onClick="history.back()"> </div> </div> <div id="side_menu_check"> </div> </div> <div id="footer"> </div> ▲inquiry_check.php終了▲

    • ベストアンサー
    • PHP
  • フォームの入力チェック処理について

    確認ボタンを押しエラーがあればエラーメッセージを出力し なければ確認画面に移りたいと考えているのですがうまくいきません。 具体的には 1:入力フォームを表示 2-1:送信ボタンを押しエラーがあればメッセージ出力 2-2:送信ボタンを押しエラーがなければhiddenのname="mode" value="confirm"を渡す hiddenの値はswitchのcase文の値でconfirmで確認画面を表示します。 入力フォームを表示する段階にてhiddenを渡しているのが原因なのは わかるのですがエラーチェックを通す際の構文がわかりません・・・ また、hiddenを消すとエラーチェックが通るのですが例えば名前を入力 しメールを入力しない状態で 送信ボタンを押すとメールの入力を促すエラーメッセージが表示され名前の入力も消えてしまいます。 これは回避できるのでしょか? 見づらいかと思うのですが下記のソースです。宜しくお願い致します。 function input() { if(isset($_POST{"submit"})) { if (empty($_POST["name"])) { $error_message[] = "お名前を入力して下さい。"; } if (empty($_POST["email"])) { $error_message[] = "メールアドレスを入力して下さい。"; }if (count($error_message)) { echo "<p style=\"color: #ff0000\">入力内容にエラーがあります。</p>\n"; foreach ($error_message as $message) { echo "<p style=\"color: #ff0000\">" . "・$message" . "</p>\n"; } } } echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\">\n"; echo "<table border=\"1\">\n"; echo "<tr>\n"; echo "<td>お名前</td>\n"; echo "<td><input type=\"text\" name=\"name\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メールアドレス</td>\n"; echo "<td><input type=\"text\" name=\"email\" size=\"20\"></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td>メッセージ</td>\n"; echo "<td><textarea name=\"msg\" rows=\"5\" cols=\"40\"></textarea></td>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<td colspan=\"2\"><input type=\"submit\" name=\"submit\" value=\"内容を確認\"></td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<input type=\"hidden\" name=\"mode\" value=\"confirm\" />\n"; echo "</form>\n"; }

    • 締切済み
    • PHP
  • フォームで確認画面を表示させるにはどうすればいいのでしょうか?

    質問をご覧下さりありがとうございます。 <form action="18add.php" method="POST" name="form1"> <table> <tr> <th>番号(半角数字)</th> <td><input type="text" name="number" value=""></td> </tr> <tr> <th>名前</th> <td><input type="text" name="name" value=""></td> </tr> <tr> <td><input type="hidden" name="mode" value="add"></td> <td><input type="submit" name="submit" value="追加"></td> </tr> </table> </form> htmlでこんなフォームを作り、phpで $table_body = ""; if( isset( $_POST['mode'] ) ){ $mode = $_POST['mode']; $number = $_POST['number']; $name =$_POST['name']; } else{ $mode = ""; $number = ""; $name = ""; } if( $mode == "add" ){ $table_body .= "<tr>"; $table_body .= "<td>"; $table_body .= $number; $table_body .= "</td>"; $table_body .= "<td>"; $table_body .= mb_convert_encoding( $name, "SJIS", "EUC-JP" ); $table_body .= "</td>"; $table_body .= "</tr>"; } で一度入力された情報を確認する画面を作りたいのですが うまくいきません。 初心者なのでわかりやすく説明をつけてくださると大変助かります。

    • 締切済み
    • 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
  • ディレクトリ作成

    ユーザが入力した名前のファイルを作成するプログラムを作っているのですが、うまくいきません。 <html> <head> <title>データ受け渡し</title> </head> <body> <?php echo "<p>入力内容:".@$_POST["text1"]; $dir = /dir/$_POST["text1"]; mkdir($dir, 0777); ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td><input type="text" name="text1"></td> <td><input type="submit" value="送信" name="sub1"></td> </tr> </table> </form> </body> </html> サーバの dir というディレクトリ内に 入力された名前のファイルを作りたいのですが、エラーが出てしまいます。 よろしくお願いします。

    • 締切済み
    • PHP
  • サブウィンドウから親ウィンドウのフォームへの書き込み

    よろしくお願いします。 やりたい事は サブウィンドウを開いて サブウィンドウのテキストボックスに入力した内容を 親ウィンドウのテキストボックスに書き込みたいのです。 以下親ウィンドウ(oya.html) <html> <head> <script type="text/javascript"> <!-- function search(){ window.open( 'sub.html' ,'childwin', "width=350,height=250,location=no,menubar=no,toolbar=no,resizable=yes,scrollbars=yes" ); } --> </script> </head> <body> <form name="mainform" method="POST" action="hoge.php"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" onclick="search();return false;" value="サブウィンドウ"></TD> </TR> <TR> <TD><center><input type="submit" name="exec" value="確認"></center></TD> </TR> </TABLE> </form> </body> </html> 以下サブウィンドウ(sub.html) <html> <head> <script type="text/javascript"> <!-- --> </script> </head> <body> <form name="subform"> <TABLE border="1"> <TR> <TD>A:<INPUT type="text" name="A" id="A"></TD> </TR> <TR> <TD>B:<INPUT type="text" name="B" id="B"></TD> </TR> <TR> <TD><input type="button" value="入力"></TD> </TR> </TABLE> </form> </body> </html> 以上です。親ウィンドウの中にformが入れ子状態になってしまうため javascriptで対応できないのかと思い質問させて頂きました。 ご教示お願いいたします。

  • データーベースをフォームから入力し更新

    データーベースをフォームから入力し更新 登録済のデーターベースをフォームから入力し更新したいのですが、どうしてもうまくいきません。 http://park18.wakwak.com/~little-box/Dreamweaver/sql010.htm のサイトを参考にしているのですがitiran.phpのところからつまづいています。 // 検索した結果を全部表示 echo "<table border=1>"; echo "<tr><td>id</td><td>name</td></tr>"; while($row=mysql_fetch_array($res)){    echo "<tr>";    echo "<td>". $row["name"] . "</td>";    echo "<td>". $row["age"] . "</td>";    echo "<form action=koushin_input.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=更新></td>";    echo "</form>";    echo "<form action=sakujo.php method=post>";    echo "<input type=hidden name=id value=" . $row["id"] . ">";    echo "<td><input type=submit value=削除></td>";    echo "</form>";    echo "</tr>"; } echo "</table>"; の辺りがおかしいのではと思っているのですが… アドバイスください。また、他に参考になるサイトがありましたらぜひ教えてください。

    • ベストアンサー
    • PHP
  • PHPのメールフォームでメールが受信できない。

    かんなりのPHP初心者で「10日でおぼえるPHP5入門教室」という本で初めてPHPを勉強しています。 http://www.webmate.ne.jp/samples/php10.jsp の4日目の1時限目をしているのですが、何回やってもメールが受信できません。ブラウザで入力して送信してもエラーも出ないのでどうしたらいいのかわかりません。 PHPの内容は以下の通りです。 mail_input.phpの中身 <html> <head> <title>10日でおぼえるPHP5入門教室(アンケート)</title> </head> <body> <h1 style="background:#cccccc"> 10日でおぼえるPHP5入門教室(アンケート)</h1> <form method="POST" action="sendmail.php"> <input type="hidden" name="_email" value="**@yahoo.co.jp" /> <input type="hidden" name="_subject" value="10日でおぼえるPHP5入門教室" /> <input type="hidden" name="_result" value="<?php print($_SERVER['PHP_SELF']);?>" /> <table border="0"> <tr> <th align="right">名前:</th> <td><input type="text" name="name" size="20" maxlength="30" /></td> </tr><tr> <th align="right">E-Mail:</th> <td><input type="text" name="_from" size="50" maxlength="255" /></td> </tr><tr> <th align="right" valign="top">自由記入欄:</th> <td><textarea name="memo" cols="50" rows="5"></textarea></td> </tr> </table> <input type="submit" value="送信" /> <input type="reset" value="クリア" /> </form> </body> </html> ・sendmail.phpの中身は <?php $header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion(); $body="■■".$_POST['_subject']."■■\n\n"; foreach($_POST as $key=>$value){ if(!strstr($key,"_")){ $body.="[".$key."]".$value."\r\n"; } } mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info); header("Location: ".$_POST['_result']); ?> という感じです。php.iniもYAHOO!のフリーメールなので SMTP=smtp.mail.yahoo.co.jp sendmail_from=**@yahoo.co.jp 拡張関数が使えるように extension_dir="c:/php/ext" extension=php_mbstring.dll としました。 しかし全く送れません。Yahoo!のフリーメールだからでしょうか?? すいません。ど素人なのでわかりやすく教えて下さい。お願いします。

  • php メールフォーム プルダウンメニュー

    プルダウンメニューを使用して、フォーム→確認→送信と順々に値を受け取りたいのですが、form.phpではプルダウンメニューは表示されますが、form.phpで選択したプルダウンメニューがconfirm.phpでは表示されません。 confirm.phpでも表示されてなおかつ送信をしたら受け取れるようにしたいのです。 初心者なので、いろいろと勉強をしながら、本を読んだり、調べたのですが、まったくわからずです。どなたかご教授お願いします。 form.php <form method="post" action="confirm.php"> <table cellpadding="0" cellspacing="0" border="0"><tr><td>項目</td><td>入力欄</td><td>記入例</td></tr> <tr><td><label for="name">名前</label></td><td><input type="text" size="50" name="name" id="name" value="<?php print h(@$_SESSION['name']); ?>" /></td><td>例:goo 太郎</td></tr> <tr><td><label for="mail">生年月日</label></td><td> <select name="year[]"><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option></select>年 <select name="month[]"><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option></select>月 <select name="day[]"><option value="01">01</option><option value="02">02</option><option value="03">03</option><option value="04">04</option><option value="05">05</option><option value="06">06</option></select>日 </td><td>例:1990年01月01日</td></tr> <tr><td colspan="3" style="text-align:center;"><input type="hidden" name="aaa" value="<?php print h($aaa); ?>" /><input type="submit" value="確認" /></td></tr> </table></form> confirm.php session_start(); $_POST = checkInput($_POST); if (isset($_POST['aaa']) && isset($_SESSION['aaa'])) { $aaa = $_POST['aaa']; if (!in_array($aaa, $_SESSION['aaa'])) { die('不正アクセスの疑いがあります。'); } } else { die('不正アクセスの疑いがあります。'); } $name = isset($_POST['name']) ? $_POST['name'] : NULL; $kana = isset($_POST['kana']) ? $_POST['kana'] : NULL; $mail = isset($_POST['mail']) ? $_POST['mail'] : NULL; $comment = isset($_POST['comment']) ? $_POST['comment'] : NULL; $error = array(); ★★★各項目のチェック★★★ $_SESSION['name'] = $name; $_SESSION['kana'] = $kana; $_SESSION['mail'] = $mail; $_SESSION['comment'] = $comment; $_SESSION['error'] = $error; <table class="form" cellpadding="0" cellspacing="0" border="0"> <tr><td>項目</td><td>入力欄</td><td class="title_color" style="border-left:1px solid #ffffff;">記入例</td></tr> <tr><td>名前</td><td class="title_back2"><?php print h($name);?></td><td>例:goo 太郎</td></tr> <tr><td>生年月日</td><td>★★★★★ここにform.phpからのプルダウンメニューを受け取りたい★★★★★</td><td>例:1990年01月01日</td></tr> </table> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td><form action="form.php" method="post"><input type="submit" value="戻る" /></form></td> <td><form action="send.php" method="post"><input type="hidden" name="aaa" value="<?php print h($aaa);?>" /><input type="submit" value="送信" /></form></td> </tr></table>

    • ベストアンサー
    • PHP

専門家に質問してみよう