2016-04-03 71 views
1

我如何创建一个实际上使用html,php和/或js将信息发送到我的电子邮件的联系表单? 我试过这段代码,但它似乎没有工作。如何创建发送到我的电子邮件的HTML/PHP联系表单?

很明显,我用我的实际电子邮件在代码即时通讯使用,并刚刚改变了这一点。

<form name="contactform" method="post" action="send_form_email.php"> 
 
     <table width="450px"> 
 
      <tr> 
 
      <td valign="top"><label for="first_name">First Name *</label></td> 
 
      <td valign="top"><input type="text" name="first_name" maxlength="50" size="30"></td> 
 
      </tr> 
 
      <tr> 
 
      <td valign="top"><label for="last_name"> Last Name *</label> </td> 
 
      <td valign="top"><input type="text" name="last_name" maxlength="50" size="30"></td> 
 
      </tr> 
 
      <tr> 
 
      <td valign="top"><label for="email">Email Address *</label></td> 
 
      <td valign="top"><input type="text" name="email" maxlength="80" size="30"></td> 
 
      </tr> 
 
      <tr> 
 
      <td valign="top"><label for="telephone">Telephone Number</label></td> 
 
      <td valign="top"><input type="text" name="telephone" maxlength="30" size="30"></td> 
 
      </tr> 
 
      <tr> 
 
      <td valign="top"><label for="comments">Comments *</label></td> 
 
      <td valign="top"><textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea></td> 
 
      </tr> 
 
      <tr> 
 
      <td colspan="2" style="text-align:center"><input type="submit" value="Submit"> 
 
      </td> 
 
      </tr> 
 
     </table> 
 
     </form> 
 

 

 
<?php 
 
    
 
if(isset($_POST['email'])) { 
 
    
 
     
 
    
 
    
 
    $email_to = "[email protected]"; 
 
    
 
    $email_subject = "CONTACT FROM WEBSITE"; 
 
    
 
     
 
    
 
     
 
    
 
    function died($error) { 
 
    
 
     // your error code can go here 
 
    
 
     echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
 
    
 
     echo "These errors appear below.<br /><br />"; 
 
    
 
     echo $error."<br /><br />"; 
 
    
 
     echo "Please go back and fix these errors.<br /><br />"; 
 
    
 
     die(); 
 
    
 
    } 
 
    
 
     
 
    
 
    // validation expected data exists 
 
    
 
    if(!isset($_POST['first_name']) || 
 
    
 
     !isset($_POST['last_name']) || 
 
    
 
     !isset($_POST['email']) || 
 
    
 
     !isset($_POST['telephone']) || 
 
    
 
     !isset($_POST['comments'])) { 
 
    
 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
 
    
 
    } 
 
    
 
     
 
    
 
    $first_name = $_POST['first_name']; // required 
 
    
 
    $last_name = $_POST['last_name']; // required 
 
    
 
    $email_from = $_POST['email']; // required 
 
    
 
    $telephone = $_POST['telephone']; // not required 
 
    
 
    $comments = $_POST['comments']; // required 
 
    
 
     
 
    
 
    $error_message = ""; 
 
    
 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
 
    
 
    if(!preg_match($email_exp,$email_from)) { 
 
    
 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
 
    
 
    } 
 
    
 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
 
    
 
    if(!preg_match($string_exp,$first_name)) { 
 
    
 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
 
    
 
    } 
 
    
 
    if(!preg_match($string_exp,$last_name)) { 
 
    
 
    $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
 
    
 
    } 
 
    
 
    if(strlen($comments) < 2) { 
 
    
 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
 
    
 
    } 
 
    
 
    if(strlen($error_message) > 0) { 
 
    
 
    died($error_message); 
 
    
 
    } 
 
    
 
    $email_message = "Form details below.\n\n"; 
 
    
 
     
 
    
 
    function clean_string($string) { 
 
    
 
     $bad = array("content-type","bcc:","to:","cc:","href"); 
 
    
 
     return str_replace($bad,"",$string); 
 
    
 
    } 
 
    
 
     
 
    
 
    $email_message .= "First Name: ".clean_string($first_name)."\n"; 
 
    
 
    $email_message .= "Last Name: ".clean_string($last_name)."\n"; 
 
    
 
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
 
    
 
    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
 
    
 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 
 
    
 
    
 
    
 
$headers = 'From: '.$email_from."\r\n". 
 
    
 
'Reply-To: '.$email_from."\r\n" . 
 
    
 
'X-Mailer: PHP/' . phpversion(); 
 
    
 
@mail($email_to, $email_subject, $email_message, $headers); 
 
    
 
?> 
 
    
 

 
    
 
    
 
    
 
<?php 
 
    
 
} 
 
    
 
?>

+1

请出示您到目前为止试过的东西。 –

+0

如果您将代码转换为MWE,此问题将更加有用。问题和答案与现在一样。 – PetaspeedBeaver

回答

1

我复制你的代码和测试。这为我工作:

<?php 
    error_reporting(E_ALL); 
?> 
<form name="contactform" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <table width="450px"> 
     <tr> 
     <td valign="top"><label for="first_name">First Name *</label></td> 
     <td valign="top"><input type="text" name="first_name" maxlength="50" size="30"></td> 
     </tr> 
     <tr> 
     <td valign="top"><label for="last_name"> Last Name *</label> </td> 
     <td valign="top"><input type="text" name="last_name" maxlength="50" size="30"></td> 
     </tr> 
     <tr> 
     <td valign="top"><label for="email">Email Address *</label></td> 
     <td valign="top"><input type="text" name="email" maxlength="80" size="30"></td> 
     </tr> 
     <tr> 
     <td valign="top"><label for="telephone">Telephone Number</label></td> 
     <td valign="top"><input type="text" name="telephone" maxlength="30" size="30"></td> 
     </tr> 
     <tr> 
     <td valign="top"><label for="comments">Comments *</label></td> 
     <td valign="top"><textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea></td> 
     </tr> 
     <tr> 
     <td colspan="2" style="text-align:center"><input type="submit" value="Submit"> 
     </td> 
     </tr> 
    </table> 
    </form> 


<?php 

if(isset($_POST['email'])) { 

$email_to = "[email protected]"; 

$email_subject = "CONTACT FROM WEBSITE"; 

function died($error) { 

    // your error code can go here 

    echo "We are very sorry, but there were error(s) found with the form you submitted. "; 

    echo "These errors appear below.<br /><br />"; 

    echo $error."<br /><br />"; 

    echo "Please go back and fix these errors.<br /><br />"; 

    exit(); 

} 



// validation expected data exists 

if(!isset($_POST['first_name']) || 

    !isset($_POST['last_name']) || 

    !isset($_POST['email']) || 

    !isset($_POST['telephone']) || 

    !isset($_POST['comments'])) { 

    died('We are sorry, but there appears to be a problem with the form you submitted.'); 

} 



$first_name = $_POST['first_name']; // required 
$last_name = $_POST['last_name']; // required 
$email_from = $_POST['email']; // required 
$telephone = $_POST['telephone']; // not required 
$comments = $_POST['comments']; // required 

$error_message = ""; 

$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 

    if(!preg_match($email_exp,$email_from)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
    } 

    $string_exp = "/^[A-Za-z .'-]+$/"; 

    if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 

if(!preg_match($string_exp,$last_name)) { 
$error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
    } 

    if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
    } 

    if(strlen($error_message) > 0) { 
    echo $error_message; 
    exit(); 

    } 

    $email_message = "Form details below.\n\n"; 

    function clean_string($string) { 

     $bad = array("content-type","bcc:","to:","cc:","href"); 

     return str_replace($bad,"",$string); 

    } 

    $email_message .= "First Name: ".clean_string($first_name)."\n"; 
    $email_message .= "Last Name: ".clean_string($last_name)."\n"; 
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
    $email_message .= "Telephone: ".clean_string($telephone)."\n"; 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 

    $headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email_from."\r\n".'X-Mailer: PHP/' . phpversion(); 

    mail($email_to, $email_subject, $email_message, $headers); 

} 

?> 

更改:

  • 表单操作
  • 模具()=>退出()
  • 加入E_ALL(1号线)

这是对它,代码为我工作。电子邮件已发送。所以它的作品:)

我希望它有帮助!

编辑:使用本地服务器如XAMPP或WAMP会导致问题,因为SMTP通常没有正确设置开箱即用。如果您在实时服务器上测试此功能,则mail()函数将起作用。

+0

在我的收件箱中仍然没有收到任何东西,但我使用xampp,可这是为什么? – SCJ

+1

是的,像XAMPP和WAMP这样的软件是本地服务器。它们没有正确配置SMTP。这将在现场服务器上运行。 – Samih

1

我检查你的代码,它的正常工作,我从你的code..here电子邮件 电子邮件波纹管

Form details below. 

First Name: khaledur 
Last Name: rahman 
Email: [email protected] 
Telephone: 00000000000 
Comments: Hello its test email 

给了你为什么在mail()功能使用@?你找不到任何错误。

如果您发送的电子邮件本地主机检查此

  1. 对于XAMPP link
  2. 对于WAMP link
相关问题