[英]Sending form data to E-mail with PHP
我試圖將表單數據發送到我的電子郵件,但沒有成功。 我希望當用戶單擊“提交”按鈕(並在驗證之后)時,數據字段將發送到我的電子郵件中,並且用戶看到一條消息“謝謝您與我們聯系”,而不是表單字段。 我對PHP非常陌生,希望你們中的一員能幫助我。
這是我的HTML表單:
<form id="contactForm" method="post" action="contact.php" onsubmit="return validateForm()">
<input type="text" name="name" id="name" placeholder="Full Name">
<input type="email" name="email" id="email" placeholder="E-mail Address">
<input type="text" name="phone" id="phone" placeholder="Phone Number">
<input type="text" name="company" id="company" placeholder="Company">
<textarea name="message" id="message" placeholder="Write Your Message Here..."></textarea>
<input type="submit" value="SEND" id="submitForm">
</form>
這是我的PHP代碼:
<?php
if($_POST["submit"]) {
$recipient="myEmail@gmail.com";
$subject="Message from Website";
$sender=$_POST["name"];
$senderEmail=$_POST["email"];
$senderPhone=$_POST["phone"];
$senderCompany=$_POST["company"];
$message=$_POST["message"];
$mailBody="Name: $sender\nEmail: $senderEmail\nPhone: $senderPhone\nCompany: $senderCompany\n\n$message";
mail($recipient, $subject, $mailBody, "From: $sender <$senderEmail>");
$thankYou="<p>Thank you! Your message has been sent.</p>";
}
?>
我也有這種形式的JS驗證功能,稱為validateForm(),可以正常工作。 我是否需要在托管服務器上定義一些內容才能使該PHP工作?
將以下行添加到腳本頂部
error_reporting(E_ALL);
ini_set("display_errors", "On");
如果未使用郵件正確配置服務器,則會看到錯誤。 最佳實踐是使用PHPMailer。 這樣您就可以使用sendmail或任何SMTP服務器
您是否嘗試過使用類似PHPMailer的工具?
https://github.com/PHPMailer/PHPMailer/
它是一個類,它將使用適當的標題發送電子郵件,並且易於使用和調試。
您還會發現,由於它具有適當的標題,因此垃圾郵件過濾器不會阻止其到達正確的目的地。
希望能幫助到你。
用這個
<input type="submit" value="SEND" id="submit">
更新:
它是輸入按鈕的name="xx"
屬性,用於為$ _POST或$ _GET數組中傳遞的值賦予變量名稱
因此,您需要像這樣在按鈕html標記中添加一個name="submit"
<input type="submit" value="SEND" name="submit">
現在,此PHP語句將起作用,因為它將在$ _POST數組中看到一個名為“ submit”的命名變量。
if ( $_POST['submit'] )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.