0

最近、w3resource サイトで、PHP を介してフォームを検証する方法に関する php フォーム検証に関する興味深い記事を読みましたが、データを電子メール アドレスに送信する方法は含まれていませんでした。次のコードは、ダウンロードした例 ( http://www.w3resource.com/php/form/php-form-validation.php )からのものです。

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset=utf-8>
<title>Form validation with parsely.js</title>
<link href="../../twitter-bootstrap/twitter-bootstrap-v2/docs/assets/css/bootstrap.css" rel="stylesheet">
<link href="parsely.css" rel="stylesheet">
<style type="text/css">
h1 {margin-bottom:20px}
input, label {margin-top:7px; margin-bottom:7px; color:#000066; font-size: 18px; padding-right: 7px}
input[type='checkbox'] {margin-left: 5px}
.note {color: #ff0000}
.success_msg{color:#006600}
</style>
</head>
<body>
<?php
if (isset($_POST['submit'])) {
//checking name
if(empty($_POST['full_name']))
$msg_name = "You must supply your name";
$name_subject = $_POST['full_name'];
$name_pattern = '/^[a-zA-Z ]*$/';
preg_match($name_pattern, $name_subject, $name_matches);
if(!$name_matches[0])
$msg2_name = "Only alphabets and white space allowed";
//check email
if(empty($_POST['email_addr']))
$msg_email = "You must supply your email";
$email_subject = $_POST['email_addr'];
$email_pattern = '/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/';
preg_match($email_pattern, $email_subject, $email_matches);
if(!$email_matches[0])
$msg2_email = "Must be of valid email format";
//check package
if(empty($_POST['package']))
$msg_package = "You must select a package";
//date validation
if(empty($_POST['arv_dt']))
$msg_dt = "You must supply an arival date";
if(!empty($_POST['arv_dt']))
{
    $dt = $_POST['arv_dt'];
    $array = explode("/",$dt);

    $day = $array[1];
    $month = $array[0];
    $year = $array[2];

    if(!checkdate($month, $day, $year))
    {
    $msg2_dt = "Must be in m/d/y format";
    }
    else
    {
    $today = strtotime("now");
    if(strtotime($dt)<$today)
    $msg3_dt = "Date supplied is before present day";
    }
}
//checking for non-empty and non-negative integer
if(empty($_POST['persons']))
$msg_persons = "You must supply number of persons travelling";
if(!empty($_POST['persons']))
{
$persons = $_POST['persons'];
preg_match("@^([1-9][0-9]*)$@", $persons, $persons_match);
if(!$persons_match[0])
$msg2_persons = "Must be non negative integer";
}
//check discount coupon
//[^a-z0-9_]
if($_POST['dis_code'])
{
 $dis_code = $_POST['dis_code'];
 preg_match("/^[a-zA-Z0-9]+$/", $dis_code, $dis_match);
 if(!$dis_match[0])
 $msg_dis = "Must be alphanumric"; 
 if(strlen($dis_code)!='10')
 $msg2_dis = "Must be 10 characters long";
}
//checking facilities
$facilities = $_POST['facilities'];
  if(empty($facilities)) 
  {
    $msg_facilities = "You must select facilities";
  } 

 if(!empty($_POST['facilities'])) {
    $no_checked = count($_POST['facilities']);
    if($no_checked<2)
    $msg2_facilities = "Select at least two options";
    }
}
?>
<?php
//checking terms 
$tnc = $_POST['tnc'];
switch($tnc)
{
case "agree":
$tncv="checked";
$tnc1v="";
break;

case "disagree":
$tncv="";
$tnc1v="checked";
$msg2_agree = "You must agree";
break;

default: // By default 1st option is selected
$tncv="checked";
$tnc1v="";
break;
};
?>
<?php
// validation complete 
if(isset($_POST['submit'])){
if($msg_name=="" && $msg2_name=="" && $msg_email=="" && $msg2_email=="" && $msg_package=="" && $msg_dt=="" && $msg2_dt==""&& $msg3_dt=="" && $msg_persons=="" && $msg2_persons=="" && $msg_facilities=="" && $msg2_facilities=="" && $msg_dis=="" && $msg2_dis=="" && $msg_agree=="" && $msg2_agree=="")
$msg_success = "You filled this form up correctly";
}
?>
<div class="container">
<h1>Travel reservation form</h1>
<h3><span class="note">*</span> denotes mandotory</h3>
<?php echo "<h3 class='success_msg'>".$msg_success."</h3>"; ?>
<form id="registration_form" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">

  <label>Full name<span class="note">*</span>:</label>
  <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
  <?php echo "<p class='note'>".$msg_name."</p>";?>
  <?php echo "<p class='note'>".$msg2_name."</p>";?>
  <label>Email address<span class="note">*</span>:</label>
  <input type="text" name="email_addr" value="<?php echo $_POST['email_addr']; ?>">
   <?php echo "<p class='note'>".$msg_email."</p>";?>
  <?php echo "<p class='note'>".$msg2_email."</p>";?>
   <label>Select Tour Package<span class="note">*</span>:</label>   
   <select name="package">
    <option value="Goa" <?= ($_POST['package'] == "1")? "selected":"";?>>Goa</options>
    <option value="Kashmir" <?= ($_POST['package'] == "2")? "selected":"";?>>Kashmir</options>
    <option value="Rajasthan" <?= ($_POST['package'] == "3")? "selected":"";?>>Rajasthan</options>
   </select>
  <?php echo "<p class='note'>".$msg_package."</p>";?>
  <label>Arrival date<span class="note">*</span>:</label>
  <input type="text" name="arv_dt" placeholder="m/d/y" value="<?php echo $_POST['arv_dt']; ?>">
  <?php echo "<p class='note'>".$msg_dt."</p>";?>
  <?php echo "<p class='note'>".$msg2_dt."</p>";?>
  <?php echo "<p class='note'>".$msg3_dt."</p>";?>
  <label>Number of persons<span class="note">*</span>:</label>
  <input type="text" name="persons" value="<?php echo $_POST['persons']; ?>"s>
  <?php echo "<p class='note'>".$msg_persons."</p>";?>
  <?php echo "<p class='note'>".$msg2_persons."</p>";?>
 <label>What would you want to avail?<span class="note">*</span></label>  
 Boarding<input type="checkbox" name="facilities[]" value="boarding" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][0])) echo "checked" ?> >
 Fooding<input type="checkbox" name="facilities[]" value="fooding" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][1])) echo "checked" ?> >
 Sight seeing<input type="checkbox" name="facilities[]" value="sightseeing" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][2])) echo "checked" ?> >
 <?php echo "<p class='note'>".$msg_facilities."</p>";?>
 <?php echo "<p class='note'>".$msg2_facilities."</p>";?>
 <label>Discout Coupon code:</label>
  <input type="text" name="dis_code" value="<?php echo $_POST['dis_code']; ?>">
  <?php echo "<p class='note'>".$msg_dis."</p>";?>
  <?php echo "<p class='note'>".$msg2_dis."</p>";?>
  <label>Terms and conditions<span class="note">*</span></label>
  <input type="radio" name="tnc" value="agree" <?php echo $tncv; ?>>I agree<br>
  <input type="radio" name="tnc" value="disagree" <?php echo $tnc1v; ?>>I disagree<br>
  <?php echo "<p class='note'>".$msg_agree."</p>";?>
  <?php echo "<p class='note'>".$msg2_agree."</p>";?>
  <button type="submit" class="btn btn-large btn-primary" name="submit">Complete reservation</button>
</form>
</div>
</body>
</html>)

        <!DOCTYPE HTML>
        <html lang="en">
        <head>
        <meta charset=utf-8>
        <title>Form validation with parsely.js</title>
        <link href="../../twitter-bootstrap/twitter-bootstrap-v2/docs/assets/css/bootstrap.css" rel="stylesheet">
        <link href="parsely.css" rel="stylesheet">
        <style type="text/css">
        h1 {margin-bottom:20px}
        input, label {margin-top:7px; margin-bottom:7px; color:#000066; font-size: 18px; padding-right: 7px}
        input[type='checkbox'] {margin-left: 5px}
        .note {color: #ff0000}
        .success_msg{color:#006600}
        </style>
        </head>

        <body>

    <?php
        if (isset($_POST['submit'])) {
        //checking name
        if(empty($_POST['full_name']))
        $msg_name = "You must supply your name";
        $name_subject = $_POST['full_name'];
        $name_pattern = '/^[a-zA-Z ]*$/';
        preg_match($name_pattern, $name_subject, $name_matches);
        if(!$name_matches[0])
        $msg2_name = "Only alphabets and white space allowed";

    //check email
        if(empty($_POST['email_addr']))
        $msg_email = "You must supply your email";
        $email_subject = $_POST['email_addr'];
        $email_pattern = '/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/';
        preg_match($email_pattern, $email_subject, $email_matches);
        if(!$email_matches[0])
        $msg2_email = "Must be of valid email format";

    //check package
        if(empty($_POST['package']))
        $msg_package = "You must select a package";
        //date validation
        if(empty($_POST['arv_dt']))
        $msg_dt = "You must supply an arival date";
        if(!empty($_POST['arv_dt']))
        {
            $dt = $_POST['arv_dt'];
            $array = explode("/",$dt);

            $day = $array[1];
            $month = $array[0];
            $year = $array[2];

            if(!checkdate($month, $day, $year))
            {
            $msg2_dt = "Must be in m/d/y format";
            }
            else
            {
            $today = strtotime("now");
            if(strtotime($dt)<$today)
            $msg3_dt = "Date supplied is before present day";
            }
        }

     //checking for non-empty and non-negative integer
        if(empty($_POST['persons']))
        $msg_persons = "You must supply number of persons travelling";
        if(!empty($_POST['persons']))
        {
        $persons = $_POST['persons'];
        preg_match("@^([1-9][0-9]*)$@", $persons, $persons_match);
        if(!$persons_match[0])
        $msg2_persons = "Must be non negative integer";
        }

    //check discount coupon
        //[^a-z0-9_]
        if($_POST['dis_code'])
        {
         $dis_code = $_POST['dis_code'];
         preg_match("/^[a-zA-Z0-9]+$/", $dis_code, $dis_match);
         if(!$dis_match[0])
         $msg_dis = "Must be alphanumric"; 
         if(strlen($dis_code)!='10')
         $msg2_dis = "Must be 10 characters long";
        }

    //checking facilities
        $facilities = $_POST['facilities'];
          if(empty($facilities)) 
          {
            $msg_facilities = "You must select facilities";
          } 

         if(!empty($_POST['facilities'])) {
            $no_checked = count($_POST['facilities']);
            if($no_checked<2)
            $msg2_facilities = "Select at least two options";
            }
        }
        ?>
        <?php

    //checking terms 
        $tnc = $_POST['tnc'];
        switch($tnc)
        {
        case "agree":
        $tncv="checked";
        $tnc1v="";
        break;

        case "disagree":
        $tncv="";
        $tnc1v="checked";
        $msg2_agree = "You must agree";
        break;

        default: // By default 1st option is selected
        $tncv="checked";
        $tnc1v="";
        break;
        };
        ?>
        <?php

    // validation complete 
        if(isset($_POST['submit'])){
        if($msg_name=="" && $msg2_name=="" && $msg_email=="" && $msg2_email=="" && $msg_package=="" && $msg_dt=="" && $msg2_dt==""&& $msg3_dt=="" && $msg_persons=="" && $msg2_persons=="" && $msg_facilities=="" && $msg2_facilities=="" && $msg_dis=="" && $msg2_dis=="" && $msg_agree=="" && $msg2_agree=="")
        $msg_success = "You filled this form up correctly";
        }
        ?>


    <div class="container">
        <h1>Travel reservation form</h1>
        <h3><span class="note">*</span> denotes mandotory</h3>
        <?php echo "<h3 class='success_msg'>".$msg_success."</h3>"; ?>
        <form id="registration_form" method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">

          <label>Full name<span class="note">*</span>:</label>
          <input type="text" name="full_name" placeholder="FirstName LastName" autofocus="autofocus" value="<?php echo $_POST['full_name']; ?>">   
          <?php echo "<p class='note'>".$msg_name."</p>";?>
          <?php echo "<p class='note'>".$msg2_name."</p>";?>
          <label>Email address<span class="note">*</span>:</label>
          <input type="text" name="email_addr" value="<?php echo $_POST['email_addr']; ?>">
           <?php echo "<p class='note'>".$msg_email."</p>";?>
          <?php echo "<p class='note'>".$msg2_email."</p>";?>
           <label>Select Tour Package<span class="note">*</span>:</label>   
           <select name="package">
            <option value="Goa" <?= ($_POST['package'] == "1")? "selected":"";?>>Goa</options>
            <option value="Kashmir" <?= ($_POST['package'] == "2")? "selected":"";?>>Kashmir</options>
            <option value="Rajasthan" <?= ($_POST['package'] == "3")? "selected":"";?>>Rajasthan</options>
           </select>
          <?php echo "<p class='note'>".$msg_package."</p>";?>
          <label>Arrival date<span class="note">*</span>:</label>
          <input type="text" name="arv_dt" placeholder="m/d/y" value="<?php echo $_POST['arv_dt']; ?>">
          <?php echo "<p class='note'>".$msg_dt."</p>";?>
          <?php echo "<p class='note'>".$msg2_dt."</p>";?>
          <?php echo "<p class='note'>".$msg3_dt."</p>";?>
          <label>Number of persons<span class="note">*</span>:</label>
          <input type="text" name="persons" value="<?php echo $_POST['persons']; ?>"s>
          <?php echo "<p class='note'>".$msg_persons."</p>";?>
          <?php echo "<p class='note'>".$msg2_persons."</p>";?>
         <label>What would you want to avail?<span class="note">*</span></label>  
         Boarding<input type="checkbox" name="facilities[]" value="boarding" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][0])) echo "checked" ?> >
         Fooding<input type="checkbox" name="facilities[]" value="fooding" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][1])) echo "checked" ?> >
         Sight seeing<input type="checkbox" name="facilities[]" value="sightseeing" <?php if(isset($_POST['submit']) && isset($_POST['facilities'][2])) echo "checked" ?> >
         <?php echo "<p class='note'>".$msg_facilities."</p>";?>
         <?php echo "<p class='note'>".$msg2_facilities."</p>";?>
         <label>Discout Coupon code:</label>
          <input type="text" name="dis_code" value="<?php echo $_POST['dis_code']; ?>">
          <?php echo "<p class='note'>".$msg_dis."</p>";?>
          <?php echo "<p class='note'>".$msg2_dis."</p>";?>
          <label>Terms and conditions<span class="note">*</span></label>
          <input type="radio" name="tnc" value="agree" <?php echo $tncv; ?>>I agree<br>
          <input type="radio" name="tnc" value="disagree" <?php echo $tnc1v; ?>>I disagree<br>
          <?php echo "<p class='note'>".$msg_agree."</p>";?>
          <?php echo "<p class='note'>".$msg2_agree."</p>";?>
          <button type="submit" class="btn btn-large btn-primary" name="submit">Complete reservation</button>
        </form>
        </div>
        </body>
        </html>

私は PHP コーディングに熱中しているわけではありませんが、これに電子メール アドレスを添付して、検証後にデータ入力を受け取ることができれば、これは素晴らしいことです。どんな助けでも大歓迎です....

4

1 に答える 1

0

それでは、どうぞ - 一歩一歩、

Step 1: declare the mail address to whom you want to send mail.
Step 2: write subject of the mail. 
Step 3: collect data from POST so that you can write them to the body of mail. 
Step 4: declare the mail id from which the mail is coming. 
Step 5: sent mail with PHP mail() function.

コードはこちら

于 2013-06-21T13:19:30.797 に答える