未能将表单数据发送到电子邮件

时间:2014-10-29 06:06:40

标签: php html

大家好我已经设计了一个有在线注册表格的页面,我希望填写的表格数据被发送到电子邮件ID,因为我使用了以下代码,

$to = 'example@example.com';

$subject = 'I need to show html'; 

$from ='from@from.com'; 

$body = '<p style=color:red;>This text should be red</p>';

ini_set("sendmail_from", $from);

$headers = "From: " . $from . "\r\nReply-To: " . $from . "";
  $headers .= "Content-type: text/html\r\n"; 
if (mail($to, $subject, $body, $headers)) {

  echo("<p>Sent</p>");
 } else {
  echo("<p>Error...</p>");
 }

我使用免费的虚拟主机托管测试,一切正常但提交的详细信息并没有提到电子邮件ID,我真的很新,可以帮我一个人

以下是表格代码:

<body>

<?php


// define variables and set to empty values
$nameErr = $cnameErr = $mobilenoErr = $emailErr = $cityErr= $postalcodeErr = $addressErr = "";

$name = $cname = $mobileno = $email = $city= $postalcode = $address = "";


if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["name"])) { 
     $nameErr = "Name is required";
   } else {
     $name = test_input($_POST["name"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
       $nameErr = "Only letters and white space allowed"; 
     }
   }

   if (empty($_POST["cname"])) {
     $cnameErr = "Company Name is required";
   } else {
     $cname = test_input($_POST["cname"]);
   }

   if (empty($_POST["mobileno"])) {
     $mobilenoErr = "Mobile Number is required";
   }else {
     $mobileno = test_input($_POST["mobileno"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[789][0-9]{9}$/",$mobileno)) {
       $mobilenoErr = "Not A Valid Number"; 
     }
   }

   if (empty($_POST["email"])) {
     $emailErr = "Email is required";
   } else {
     $email = test_input($_POST["email"]);
     // check if e-mail address is well-formed
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
       $emailErr = "Invalid email format"; 
     }
   }
   if (empty($_POST["city"])) {
     $cityErr = "City is required";
   }  else {
     $city = test_input($_POST["city"]);
     // check if name only contains letters and whitespace
     if (!preg_match("/^[a-zA-Z ]*$/",$city)) {
       $cityErr = "Only letters and white space allowed"; 
     }
   }
   if (empty($_POST["postalcode"])) {
     $postalcodeErr = "Postal Code is required";
   } else {
     $postalcode = test_input($_POST["city"]);
   }

   if (empty($_POST["address"])) {
     $addressErr = "Address is required";
   } else {
     $address = test_input($_POST["address"]);
   }
}

$to = 'example@Example.com';

$subject = 'I need to show html'; 

$from ='from@from.com'; 

$body = '<p style=color:red;>This text should be red</p>';

$body .= '<label>User Name:</label>'.$name.'<br>';

$body .= '<label>Company Name:</label>'.$cname.'<br>';


ini_set("sendmail_from", $from);

$headers = "From: " . $from . "\r\nReply-To: " . $from . "";
  $headers .= "Content-type: text/html\r\n"; 
if (mail($to, $subject, $body, $headers)) {

  echo("<p>Sent</p>");
 } else {
  echo("<p>Error...</p>");
 }
function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
 if(!empty($name)&& !empty($cname)&&!empty($mobileno)&& !empty($email)&&!empty($city)&&!empty($postalcode)&&!empty($address)){
   header('Location: Submission.php?$submit=1');
   exit();}


?>
<div class="gridContainer clearfix">
  <div id="div1" class="fluid"><!-- header ends here-->
    <div id="header" class="fluid">
      <div class="fluid logo_container zeroMargin_tablet">
      <div class="fluid logo_mvc"></div>
      <!-- logo_mvc ends here-->
      <div class="fluid logo_gsm"></div>
      <!-- logo_gsm ends here-->
    </div>
    <!-- logo_container ends here-->
</div>
    <div class="fluid imageslide zeroMargin_desktop">
      <div class="fluid imageslide_gs zeroMargin_desktop"></div>
      <!-- imageslide_gs ends here-->
      <div class="fluid imageslide_content">
      <h1>IP Product Introduction and VoIP PBX
Appliance Training Day @ Toronto</h1>
      </div><!-- imageslide_content ends here-->
      <div class="fluid imageslide_product"></div>
      <!-- imageslide_product ends here-->
    </div><!-- imageslide ends here-->
    <div class="fluid content">
    <div class="fluid content_det">
    <h3>Event information</h3>
    <p>Please join us at the Fairfield Inn & Suites Toronto Airport where Grandstream will offer four different sessions during the day. </p>
    <h3>Introduction to Grandstream IP products</h3>
    <p><b>8:45am - 10:15am</b><br/>
Introduction to Grandstream, and basic information on Grandstream products including ATAs, gateways, routers and telephones. </p>
<h3>Introduction to IP cameras IP and Surveillance products</h3>
    <p><b>12:45pm - 2:15pm</b><br/>
Basic information on IP cameras and surveillance products, and the introduction of the brand new GVR3550 Network Video Recorder. </p>
<h3>Advanced Technical Training for UCM VoIP PBX's</h3>
    <p><b>2:30pm - 4:30pm</b><br/>
This session will focus on the advanced features of the UCM series, including the new features of the upcoming software and the brand new UCM6510 VoIP PBX for T1 networks. </p>
    </div><!-- content_det ends here--><div class="fluid contet_form">

    <h2>Register Now</h2>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
    <div class="fluid div_form"><label><b>First name *:</b></label>
    <input type="text" size="20px" name="name" placeholder="Enter Your Name Here" value="<?php echo $name; ?>"/><span class="error"><?php echo $nameErr;?></span>

    </div>


    <div class="fluid div_form"><label><b>Company Name *:</b></label>
    <input type="text" size="20px" name="cname" placeholder="Enter Your Company Name Here" value="<?php echo $cname; ?>"/><span class="error"><?php echo $cnameErr;?></span></div>

    <div class="fluid div_form"><label><b>Mobile Number *:</b></label>
    <input type="text" size="20px" name="mobileno" placeholder="Enter Your Mobile Number Here" value="<?php echo $mobileno; ?>"/><span class="error"><?php echo $mobilenoErr?></span>
     </div>

    <div class="fluid div_form"><label><b>Email Id *:</b></label>
    <input type="email" size="20px" name="email" placeholder="Enter Your Email Id Here" value="<?php echo $email; ?>"/><span class="error"><?php echo $emailErr?></span></div>


    <div class="fluid div_form"><label><b>City *:</b></label>
    <input type="text" size="20px" name="city" placeholder="Enter Your City Name Here" value="<?php echo $city;?>"/><span class="error"><?php echo $cityErr?></span></div>

    <div class="fluid div_form"><label><b>Postal Code *:</b></label>
    <input type="text" size="20px" name="postalcode" placeholder="Enter Postal Code Here" value="<?php echo $postalcode; ?>"/><span class="error"><?php echo $postalcodeErr?></span>
     </div>

    <div class="fluid div_form"><label><b>Address *:</b></label>
    <input type="text" size="20px" name="address" placeholder="Enter Address Here" value="<?php echo $address; ?>"/><span class="error"><?php echo $addressErr?></span></div>


<button name="submit" >Submit</button>
    </form>

    </div><!-- contet_form ends here-->
    </div><!-- content ends here-->
  </div><!-- div1 ends here-->
</div>
</body>

这里是Submission.php代码

<?php 
$submit=1;
if( !isset($_POST[$submit]) )
 {

 }
 else{
  header('Location:index.php');
   exit;
 }
 ?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Thank You For Registration</title>
</head>

<body>
<h4>Registration Sucessfull</h4><br/>
<a href="index.php">Go To Registration Page</a>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

首先问题是它是一个HTML电子邮件,所以使用正确的标题,然后在html文件的正文中发送你想要的表单数据

用此测试并让我知道它是否正常工作

    $to = 'from@from.com';
    $subject = 'I need to show html'; 
    $from ='from@from.com'; 
    ini_set("sendmail_from", $from);
    $username=$_POST['name'];
    $mobilenum=$_POST['mobileno'];
    $cname=$_POST['cname'];
    $address=$_POST['address'];
    $postalcode=$_POST['postalcode'];
    $headers = "From: " .$from. "\r\n";
    $headers .= "Reply-To: ".$from. "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $body = '<p style=color:red;>This text should be red</p>';
    $body.='<label>User Name:</label>'.$username.'<br>';
    $body .= '<label>Mobile Num:</label>'.$mobilenum.'<br>';
    $body .= '<label>Company Name:</label>'.$cname.'<br>';
    $body .= '<label>Address:</label>'.$address.'<br>';
    $body .= '<label>Postalcode:</label>'.$postalcode.'<br>';

if (mail($to, $subject, $body, $headers)) {

  echo("<p>Sent</p>");
 } else {
  echo("<p>Error...</p>");
 }