2014-03-27 261 views
0

嗨我已經下載了刷牙敏感的網站模板和PHP聯繫表單不會工作。電子郵件不能發送與PHP

這是接觸形式怎麼看起來像index.html文件

<div class="row"> 
    <div class="span9"> 
    <form id="contact-form" class="contact-form" action="_include/php/contact.php"> 
     <p class="contact-name"> 
     <input id="contact_name" type="text" placeholder="Full Name" value="" name="name" /> 
     </p> 
     <p class="contact-email"> 
     <input id="contact_email" type="text" placeholder="Email Address" value="" name="email" /> 
     </p> 
     <p class="contact-message"> 
     <textarea id="contact_message" placeholder="Your Message" name="message" rows="15" cols="40"></textarea> 
     </p> 
     <p class="contact-submit"> 
     <a id="contact-submit" class="submit" href="#">Send Your Email</a> 
     </p> 
     <div id="response"></div> 
    </form> 
    </div> 

    <div class="span3"> 
    <div class="contact-details"> 
     <h3>Contact Details</h3> 
     <ul> 
     <li><a href="#">[email protected]</a></li> 
     <li>(916) 375-2525</li> 
     <li> 
      Brushed Studio 
      <br> 
      5240 Vanish Island. 105 
      <br> 
      Unknow 
     </li> 
     </ul> 
    </div> 
    </div> 
</div> 

這該是多麼的PHP樣子

<?php 

$admin_email = '[email protected]'; // Your Email 
$message_min_length = 5; // Min Message Length 


class Contact_Form{ 
    function __construct($details, $email_admin, $message_min_length){ 

     $this->name = stripslashes($details['name']); 
     $this->email = trim($details['email']); 
     $this->subject = 'Contact from Your Website'; // Subject 
     $this->message = stripslashes($details['message']); 

     $this->email_admin = $email_admin; 
     $this->message_min_length = $message_min_length; 

     $this->response_status = 1; 
     $this->response_html = ''; 
    } 


    private function validateEmail(){ 
     $regex = '/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i'; 

     if($this->email == '') { 
      return false; 
     } else { 
      $string = preg_replace($regex, '', $this->email); 
     } 

     return empty($string) ? true : false; 
    } 


    private function validateFields(){ 
     // Check name 
     if(!$this->name) 
     { 
      $this->response_html .= '<p>Please enter your name</p>'; 
      $this->response_status = 0; 
     } 

     // Check email 
     if(!$this->email) 
     { 
      $this->response_html .= '<p>Please enter an e-mail address</p>'; 
      $this->response_status = 0; 
     } 

     // Check valid email 
     if($this->email && !$this->validateEmail()) 
     { 
      $this->response_html .= '<p>Please enter a valid e-mail address</p>'; 
      $this->response_status = 0; 
     } 

     // Check message length 
     if(!$this->message || strlen($this->message) < $this->message_min_length) 
     { 
      $this->response_html .= '<p>Please enter your message. It should have at least '.$this->message_min_length.' characters</p>'; 
      $this->response_status = 0; 
     } 
    } 


    private function sendEmail(){ 
     $mail = mail($this->email_admin, $this->subject, $this->message, 
      "From: ".$this->name." <".$this->email.">\r\n" 
      ."Reply-To: ".$this->email."\r\n" 
     ."X-Mailer: PHP/" . phpversion()); 

     if($mail) 
     { 
      $this->response_status = 1; 
      $this->response_html = '<p>Thank You!</p>'; 
     } 
    } 


    function sendRequest(){ 
     $this->validateFields(); 
     if($this->response_status) 
     { 
      $this->sendEmail(); 
     } 

     $response = array(); 
     $response['status'] = $this->response_status; 
     $response['html'] = $this->response_html; 

     echo json_encode($response); 
    } 
} 


$contact_form = new Contact_Form($_POST, $admin_email, $message_min_length); 
$contact_form->sendRequest(); 

?> 
+0

任何地方出錯? – Brewal

+0

「不行」對我們或你沒有多大用處。什麼不工作?你有什麼錯誤,如果有的話?你期望發生什麼,但實際發生了什麼?你有什麼試圖解決它? – Styphon

+0

http://stackoverflow.com/questions/2896280/debugging-php-mail-and-or-phpmailer使用PHPMailer。這是更有前途,更容易調試 – Jebin

回答

0

您需要添加的方法,默認將使用GET

method="POST" 

在這裏

<form id="contact-form" class="contact-form" action="_include/php/contact.php"> 

最終結果將是

<form id="contact-form" method="POST" class="contact-form" action="_include/php/contact.php"> 

確保你的行動指向正確的文件夾爲好。

+0

感謝您的幫助。我已經檢查了操作並將其指向了正確的文件夾。我也添加了該方法,但仍不發送電子郵件。它什麼都不做:( – user3469485