如何让这个PHP联系人表单工作?

如何让这个PHP联系人表单工作?,php,Php,我在一家餐厅得到了这个免费的引导程序。我正在尝试制作我的第一个联系人表单,但我不知道它是如何工作的,因为它与HMTL代码非常不同 我认为我必须更改PHP并将我自己的电子邮件地址设置为$toEmail,但当我尝试并在XAMPP上测试它时,它不起作用 我的PHP中有以下内容: <?php if (isset($_POST['submit'])) { $name = $_POST['name']; $email = $_POST['email']; $ToEmail = 'test

我在一家餐厅得到了这个免费的引导程序。我正在尝试制作我的第一个联系人表单,但我不知道它是如何工作的,因为它与HMTL代码非常不同

我认为我必须更改PHP并将我自己的电子邮件地址设置为$toEmail,但当我尝试并在XAMPP上测试它时,它不起作用

我的PHP中有以下内容:

<?php
if (isset($_POST['submit'])) { 
  $name = $_POST['name'];
  $email = $_POST['email'];
  $ToEmail = 'test@test.com';
  $EmailSubject = $_POST['subject']; 
  $mailheader = "From: ".$_POST["email"]."\r\n"; 
  $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
  $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
  $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
  $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
  $MESSAGE_BODY .= "Subject:".$_POST['subject']."<br />";  
  $MESSAGE_BODY .= "Message: ".nl2br($_POST["message"])."<br>"; 
  if(mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader))
  {
  echo "<script>alert('Mail was sent !');</script>";
  echo "<script>document.location.href='http://localhost/restaurant/'</script>";
  }
  else
  {
  echo "<script>alert('Mail was not sent. Please try again later');</script>";
  }
 }
这在我的html中

<div class="inner contact">
  <!-- Form Area -->
  <div class="contact-form">
    <!-- Form -->
    <form id="contact-us" method="post" action="contact.php">
      <!-- Left Inputs -->
      <div class="col-md-6 ">
        <!-- Name -->
        <input type="text" name="name" id="name" required class="form" placeholder="Naam" />
        <!-- Email -->
        <input type="email" name="email" id="email" required class="form" placeholder="Email Adres" />
        <!-- Subject -->
        <input type="text" name="subject" id="subject" required class="form" placeholder="Onderwerp" />
      </div><!-- End Left Inputs -->
      <!-- Right Inputs -->
      <div class="col-md-6">
        <!-- Message -->
        <textarea name="message" id="message" class="form textarea"  placeholder="Bericht"></textarea>
      </div><!-- End Right Inputs -->
      <!-- Bottom Submit -->
      <div class="relative fullwidth col-xs-12">
        <!-- Send Button -->
        <button type="submit" id="submit" name="submit" class="form-btn semibold">Verstuur Bericht</button> 
      </div><!-- End Bottom Submit -->
      <!-- Clear -->
      <div class="clear"></div>
    </form>
  </div><!-- End Contact Form Area -->             
有人能给我指一下正确的方向吗?
我需要编辑哪些部分才能使其工作?

邮件功能在localhostXAMPP中不起作用您应该将其作为服务器托管并运行它

作为Dhinju Divakarans答案的替代方案,您可以更改邮件服务器设置以使用外部邮件服务器,例如gmail

我通过编辑/xampp/sendmail/sendmail.ini来实现这一点。查找以下代码并更改值。在我的情况下,以下方法很好:

smtp_server=smtp.googlemail.com
auth_username= (put the gmail email address here)
auth_password= your password
hostname=smtp.googlemail.de
我没有碰其他设置


也许你也想看看。

你说的“不工作”是什么意思?它随时发送电子邮件吗?是PHP文件contact.PHP的名称吗?您的服务器上安装了PHP吗?也许这就是问题所在。除此之外,是的,你只需要做一点编辑。我建议您将$ToEmail更改为$ToEmail=$\u POST['email'],因为$ToEmail是稍后在mail方法中引用的变量。另一个$email变量似乎是多余的。是的,它的联系人是php,当我试图发送一封电子邮件时,它会说mail send,但随后它会转到一个找不到对象的页面,我正在使用apache和mysql对其进行本地测试。是的,apache是您的服务器,mysql是您的数据库,但您在apache上安装了php吗?您可以通过创建一个名为phpinfo.php的新php页面来验证这一点,该页面包含以下代码行:如果它向您发送错误消息,您可能没有安装php。感谢@AbcAeffchen修复了它,它现在工作得很好