php 联系表格有问题..是我的代码还是我的服务器设置?

Problems With php contact form..is it my code or my server settings?

iv 一直在尝试构建一个 php 联系表,但没有得到预期的结果,谁能告诉我以下代码是否可以在服务器上运行,或者它的代码是否出错?

contact.php

<form name="contact" action="contactMail.php" method="POST" enctype="multipart/form-data">
                <table id="contactTable">
                    <tr>
                        <td id="contactTable"><label for="name">Name</label></td>
                        <td><input name="name" id="name" type="text" size="30" required="required"  /></td>
                    </tr>
                    <tr>
                        <td id="contactTable">Subject</td>
                        <td><input name="subject" id="subject" type="text" size="30" required="required" ></td
                    ></tr>
                    <tr>
                        <td id="contactTable"><label for="email">Email</label></td>
                        <td><input name="email" id="email" type="email" size="40" required="required" ></td>
                    </tr>
                    <tr>
                        <td id="contactTable" valign="top"><label for="message">Message</label></td>
                        <td><textarea id="message" name="message" required="required" ></textarea ></tr>
                </table>  
                <div align="center">  
                 <input id="blueButton" type="reset" value="Clear All">
                 <input id="blueButton" type="submit" value="Send Message">
            </div>    
            </form>

contactMail.php

<?php $name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent="From: $name \n Message: $message";
$recipient = "example@hotmail.co.uk";
$subject = $_POST['subject'];
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!";
header ("refresh:2;url=contact.php");
?>

这取决于很多事情 - 首先,您没有说明您的 "desired result" 是什么,也没有解释正在发生的事情。

但是,我的假设是您想要: 1/ 要发送的电子邮件 2/ 要显示给用户的消息"Thank you!" 3/ 2 秒后,用户被重定向到一个新页面:

因此,您的主要问题是您的 header - 您无法在将输出发送到浏览器后发送 header(echo() 所做的),因此您的 header() 不会被发送。

因此,您需要换行:

header ("refresh:2;url=contact.php");
echo "Thank You!";

我认为您需要从电子邮件中提供或作为域电子邮件提供给电子邮件。 示例:如果 'xxx.com' 则 'xxx' 是您的域名,因此您的域电子邮件类似于 demo@xxx.com