2015-12-28 30 views
0

我不擅長PHP(更多是前端開發人員),我正在爲客戶做一個網站。除了一件事之外,我已經掌握了一切工作。當用戶填寫聯繫表單併成功提交時,我想顯示一條消息告訴他們電子郵件已發送。我已經設置了div,我只是不知道用PHP來執行它。我希望在提交表單時回顯消息

<div class="sent">Email has been sent.</div> 
    <form action="" method="POST" class="contact-form"> 
    <img class="close" src="images/close-icon.png">  
     <div class="top-title">Contact Us</div> 
     <input type="hidden" name="action" value="submit"> 
     <div class="input-title">Name*</div> 
     <input class="input" name="name" type="text" value="" size="30" required><br> 
     <div class="input-title">Phone Number*</div> 
     <input class="input" name="phone" type="text" value="" size="30" required><br> 
     <div class="input-title">Email Address*</div> 
     <input class="input" name="email" type="text" value="" size="30" required><br> 
     <div class="input-title">How did you hear about us?</div> 
     <input class="input" name="company" type="text" value="" size="30"/><br> 
     <div class="input-title">Let us know how we can help you</div> 
     <textarea class="textarea" name="message" rows="7" cols="30"></textarea><br> 
     <div class="required">*Fill is required</div> 
     <input class="submit-button" type="submit" value="Send Email"/> 
    </form> 
    <?php    
     { 
     $name=$_POST['name']; 
     $email=$_POST['email']; 
     $phone=$_POST['phone']; 
     $company=$_POST['company']; 
     $message= "\r\nName: " . $_POST['name'] ."\r\nPhone Number: ". $_POST['phone']."\r\nEmail: ". $_POST['email'] ."\r\nHow you know the company: ".$_POST['company'] ."\r\nReason for message: ".$_POST['message']; 

      $from="From: $name<$email>\r\nReturn-path: $email"; 
      $subject="GS Website Message"; 
      mail("[email protected]", $subject, $message, $from); 
     } 
    ?> 
+2

'if(condition){do something} else {do something else}'並將該邏輯應用到您的'mail()'函數。 *教一個人如何釣魚... *我總是說;-) –

+0

然後你有大括號{code}'不應該在那裏,你很可能會回來未定義的索引通知,但你不是檢查錯誤http://php.net/manual/en/function.error-reporting.php。看到您在同一個文件中使用HTML表單和PHP。您也可以在'$ message ...'中打開XSS注入,所以只需使用您已經聲明的變量即可。 –

+0

我正在使用我在網上找到的例子。就像我說的我真的不知道如何在PHP中編碼。表單實際上工作正常,它驗證我需要什麼,併發送給我一個電子郵件中的所有字段值。我想要做的就是在提交表單時添加一條消息。 – user2584238

回答

2

變化:(和使用條件語句)

mail("[email protected]", $subject, $message, $from); 

到:

if(mail("[email protected]", $subject, $message, $from)){ 
    $sent = "Message sent"; 
} 

然後修改:

<div class="sent">Email has been sent.</div> 

爲閱讀:

<div class="sent"><?php if(!empty($sent)) { echo $sent; } ?></div> 

鑑於您是PHP /表單的新手,最好還要檢查您的輸入是否爲空,否則您將面臨無法獲取郵件或接收空數據的風險。

設置一個條件語句中也。

即:使用NOT空:!是PHP中的NOT運算符。

if(!empty($_POST['var'])){...} 

編輯:

的邏輯需要反轉。

首先,將您的PHP放在HTML表單上方。

我還在您的提交按鈕中添加了一個submit名稱屬性,條件語句和ternary operator在div中。

<?php 

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

     $name=$_POST['name']; 
     $email=$_POST['email']; 
     $phone=$_POST['phone']; 
     $company=$_POST['company']; 
     $message= "\r\nName: " . $_POST['name'] ."\r\nPhone Number: ". $_POST['phone']."\r\nEmail: ". $_POST['email'] ."\r\nHow you know the company: ".$_POST['company'] ."\r\nReason for message: ".$_POST['message']; 

      $from="From: $name<$email>\r\nReturn-path: $email"; 
      $subject="GS Website Message"; 


if(mail("[email protected]", $subject, $message, $from)){ 

$sent = "Message sent"; 

    } 
} 
    ?> 

<div class="sent"><?php echo isset($sent) ? $sent : ''; ?></div> 


    <form action="" method="POST" class="contact-form"> 

    <img class="close" src="images/close-icon.png">  


     <div class="top-title">Contact Us</div> 
     <input type="hidden" name="action" value="submit"> 
     <div class="input-title">Name*</div> 
     <input class="input" name="name" type="text" value="" size="30" required><br> 
     <div class="input-title">Phone Number*</div> 
     <input class="input" name="phone" type="text" value="" size="30" required><br> 
     <div class="input-title">Email Address*</div> 
     <input class="input" name="email" type="text" value="" size="30" required><br> 
     <div class="input-title">How did you hear about us?</div> 
     <input class="input" name="company" type="text" value="" size="30"/><br> 
     <div class="input-title">Let us know how we can help you</div> 
     <textarea class="textarea" name="message" rows="7" cols="30"></textarea><br> 
     <div class="required">*Fill is required</div> 
     <input class="submit-button" type="submit" value="Send Email" name="submit"/> 
    </form> 
+0

我會試試這個,謝謝 – user2584238

+0

@ user2584238不客氣。並假設你的表單是'.php' - 我不確定你的表單/ PHP是否在同一個文件中。 –

+0

是的,我的文件是.php,一切都在一個文件中 – user2584238

相關問題