2013-11-04 48 views
0

部分電子郵件PHP聯繫表誤差爲隨機輸出HTML文件的

 <div id="formwrap"> 
      <form method="post" id="submitform" action="submitemail.php" > 
         <input type="text" class="formstyle" title="Name" name="name" /> 
         <input type="text" class="formstyle" title="Email" name="email" /> 
         <textarea name="message" title="Message"></textarea> 
         <input class="formstyletwo" type="submit" value="Send"> 
      </form> 

PHP部分

<? 
    $mailto = "[email protected]"; /*PUT YOUR EMAIL IN HERE*/ 
    $cc = ""; 
    $bcc = ""; 
    $subject = "enquiry"; 
    $vname = "Website Contact Form"; 

    $email = $_POST['email']; 

    function validateEmail($email) 
    { 
     if(eregi('^[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$', $email)) 
      return true; 
     else 
      return false; 
    } 


    if(strlen($_POST['name']) < 1 || strlen($_POST['message']) < 1 || validateEmail($email) == FALSE) 
    { 

     if(empty($_POST['name'])) 
     { 
      $emailerror .= '<li>Enter name</li>'; 
     } 

     if(validateEmail($email) == FALSE) 
     { 
      $emailerror .= '<li>Enter valid email</li>'; 
     } 

     if(empty($_POST['message'])) 
     { 
      $emailerror .= '<li>Enter message</li>'; 
     } 
    } 
    else 
    { 
     $emailerror .= "Your email has been sent successfully"; 

     // NOW SEND THE ENQUIRY 
     $timestamp = date("F j, Y, g:ia"); 

     $messageproper ="\n\n" . 
      "Name: " . 
      ucwords($_POST['name']) . 
      "\n" . 
      "Email: " . 
      ucwords($email) . 
      "\n" . 
      "Comments: " . 
      $_POST['message'] . 
      "\n" . 
      "\n\n" ; 

      $messageproper = trim(stripslashes($messageproper)); 
      mail($mailto, $subject, $messageproper, "From: \"$vname\" <".$_POST['e_mail'].">\nReply-To: \"".ucwords($_POST['first_name'])."\" <".$_POST['e_mail'].">\nX-Mailer: PHP/" . phpversion()); 
    } 
    ?> 

    <div id='emailerror'> 
     <ul> 
      <? echo $emailerror; ?> 
     </ul> 
    </div> 

ON XAMPP服務器上運行它,我得到的文本只是下面的表格輸出錯誤發送按鈕

ERROR輸出中顯示

輸入名稱「; } if(validateEmail($ email)== FALSE){$ emailerror。=' 輸入有效的電子郵件地址 '; } if(empty($ _ POST ['message'])){$ emailerror。=' Enter message ';} if; }} else {$ emailerror。=「您的電子郵件已成功發送」; //現在發送查詢$ timestamp = date(「F j,Y,g​​:ia」); $ messageproper =「\ n \ n」。 「名稱: 」 。 ucwords($ _ POST ['name'])。 「\ n」。 「電子郵件:」。 ucwords($ email)。 「\ n」。 「註釋: 」 。 $ _POST ['message']。 「\ n」。 「\ n \ n」; $ messageproper = trim(stripslashes($ messageproper)); ($ mailto,$ subject,$ messageproper,「From:\」$ vname \「<」。$ _ POST ['e_mail']。「> \ nReply-To:\」「。ucwords($ _ POST ['first_name' ])。「\」<「。$ _ POST ['e_mail']。」> \ nX-Mailer:PHP /「。phpversion()); }?>

+0

你不應該使用速記標籤 –

回答

1

好了,所以這應該工作

<?php 
$mailto = "[email protected]"; /*PUT YOUR EMAIL IN HERE*/ 
$cc = ""; 
$bcc = ""; 
$subject = "enquiry"; 
$vname = "Website Contact Form"; 


$errors = array(); 
if($_POST){ 

    if(!isset($_POST['name']) || $_POST['name'] == "") 
     $errors[] = "Please enter your name."; 

    if(isset($_POST['email']) && $_POST['email'] != ""){ 
     if(!preg_match('%^[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$%', $_POST['email'])) 
      $errors[] = "Not valid email"; 
    }else 
     $errors[] = "Please enter your email"; 

    if(!isset($_POST['message']) || $_POST['message'] ==""){ 
     $errors[] = "Please enter the message."; 
    } 

    if(!$errors){ 
     //send here your email... 
     echo "email sended"; 
    } 
} 



?> 
<div id='emailerror'> 
    <ul> 
     <?php 
      foreach($errors as $err){ 
       echo "<li>$err</li>"; 
      } 
     ?> 
    </ul> 
</div> 
+0

工作cool..gives正確的輸出。將實施電子郵件的一部分,使其工作..感謝 –

+0

我很高興聽到,只是運行它從服務器代碼因爲從本地它不起作用也確保您的主機提供商支持SMTP,否則從本地可以使用谷歌Gmail郵件庫進行測試,其作品熟知我,請參閱此 http://stackoverflow.com/questions/712392/send-email-using-gmail-smtp-server-from-php-page –

3

而不是使用短標籤爲php <? ?>用戶<?php ?>它應該修復它。

另請注意:從地方你不能發送電子郵件扔郵件功能和eregi功能已被棄用,而不是它使用的preg_match

preg_match('%^[a-zA-Z0-9._-][email protected][a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$%', $email) 
+0

它刪除了所有的錯誤,但點擊發送按鈕後,我沒有得到任何輸出 –

+0

基本沒有發生點擊發送按鈕,沒有任何錯誤消息作爲「輸入名稱」或任何東西 –

0

使用完整的標籤如以前說。你也應該聲明你的$ emailerror變量,然後再附加到它:

$emailerror = ""; 

在你的代碼的開頭。

相關問題