PHP邮件发送简单的联系方式

PHP邮件发送简单的联系方式,php,html,forms,email,mailer,Php,Html,Forms,Email,Mailer,我一直试图在PHP中使用mail()函数,但在测试联系人表单时,似乎无法获得发送到我电子邮件地址的消息。它只会显示在白色屏幕上,不再显示。。它甚至没有显示下面的成功信息 这是PHP: <?php if(isset($_POST['submit'])) { $name = $_POST['name']; $address = $_POST['address']; $number = $_POST['number']; $email = $_POST['email']; $message =

我一直试图在PHP中使用mail()函数,但在测试联系人表单时,似乎无法获得发送到我电子邮件地址的消息。它只会显示在白色屏幕上,不再显示。。它甚至没有显示下面的成功信息

这是PHP:

<?php 
if(isset($_POST['submit'])) {
$name = $_POST['name'];
$address = $_POST['address'];
$number = $_POST['number'];
$email = $_POST['email'];
$message = $_POST['message'];
$subject = 'Message from Reef website';
$to = 'myemail@hotmail.co.uk';

if (empty($name) || empty($address) || empty($number) || empty($email) || empty($subject) || empty($message)) {
    if (empty($name))
        $error['name'] = "Please enter your Full Name";
    if (empty($name))
        $error['address'] = "Please enter your address";
    if (empty($name))
        $error['number'] = "Please enter a contact number";
    if (empty($email))
        $error['email'] = "Please enter a valid Email Address";
    if (empty($message))
        $error['message'] = "Please write a message, enquiries or other concerns above";
}
else { //if not empty

    $headers="From: {$email}\r\nReply-To: {$email}";
    mail($to,$subject,$message,$headers);
    $success = "Thank you! You're email has been sent.";
}
}
?>

php.ini文件中的SMTP服务器设置是什么?您需要运行SMTP服务器才能发送邮件

一个更简单的解决方案是使用

你有一个问题

您正试图像这样访问数字值

$number = $_POST['number'];
但在您的表单中,它是name=“text”


因此,将表单字段更改为

<input id="number" name="number" type="text" required autofocus>

这导致您的验证失败

if (empty($name))
    $error['name'] = "Please enter your Full Name";
if (empty($name))
    $error['address'] = "Please enter your address";
if (empty($name))
    $error['number'] = "Please enter a contact number";
在每个
if
语句中都使用了
$name
。使用相应的变量进行更改

改变


我想你明白了。您正在检查父级
if
语句中的
空($number)
,该语句始终为
true
,由于变量错误(
$name
),您没有收到任何消息。

我想,您没有在php.ini中设置SMTP数据
如果可以的话,可以使用其他库发送邮件,比如

,之所以会发送到空白页面,是因为PHP页面是空白的!你似乎没有在页面上的任何地方重复你的成功信息

我建议更改您的表单,使HTML如下所示:

<form method="POST">

然后将PHP粘贴到该页面的顶部。记住将页面类型设置为.php而不是.html/.htm

最后,在表单顶部添加一个回音,这样成功消息将沿着

<?php
    if ($success) {
        echo $success;
    }
?>

更改

mail($to,$subject,$message,$headers); 

也要更改ifs,因为只检查一个变量

if (empty($name))
始终为$name

放入第一行进行调试:

error_reporting(E_ALL);
你为什么要用“身份证”呢

<input id="name" name="name" type="text" required autofocus>


这是因为您没有回显任何错误。.回显它们您将知道错误是什么。.使用错误报告(e\u all);在第一行,给我们错误谢谢,这绝对有帮助!谢谢它现在正在工作,除了PHP成功消息会打断页面并显示在左角?但至少现在它发送到了电子邮件!在这种情况下,在成功消息周围添加更多html,例如
if (empty($name))
error_reporting(E_ALL);
<input id="name" name="name" type="text" required autofocus>