2016-02-29 57 views
-1

我一直在淘汰过去五个小时的无数其他php联系表单问题,并且无法为我的生活弄清楚为什么我的工作不正常。除了来自Codecademy的一些“课程”外,我是PHP的总新手。所以 - 这就是我们所拥有的。单页HTML文件。这里的形式:简单的PHP联系表格失败

<div id="contact-form-section"> 
 
         <div class="status alert alert-success" style="display: none"></div> 
 
         <form id="contact-form" class="contact" name="contact-form" method="post" action="send-mail.php"> 
 
          <div class="form-group"> 
 
           <input type="text" name="name" class="form-control name-field" required="required" placeholder="Your Name"></div> 
 
           
 
           <div class="form-group"> 
 
            <input type="email" name="email" class="form-control mail-field" required="required" placeholder="Your Email"> 
 
           </div> 
 
           
 
           <div class="form-group"> 
 
           <input type="text" name="tel" class="form-control" required="required" placeholder="Your Phone Number"> 
 
           </div> 
 
             
 
           <div class="form-group"> 
 
            <textarea name="message" id="message" required="required" class="form-control" rows="8" placeholder="Message"></textarea> 
 
           </div> 
 
           <div class="form-group"> 
 
            <button type="submit" class="btn btn-primary">Send</button> 
 
           </div> 
 
          </form> 
 
         </div>

而这里的PHP,用电子邮件,我想送由[email protected]更换。试图从其他一些教程中弄清楚它们是如何工作的。想要让提交按钮触发警报,然后返回索引页面。

<? 
 

 
$name=$_POST['name']; 
 
$Email=$_POST['email']; 
 
$tel=$_POST['tel'] 
 
$website=$_POST['url']; 
 
$message=$_POST['message']; 
 

 

 
    
 
    $body .= "Name: " . $name . "\n"; 
 
    $body .= "Email: " . $Email . "\n"; 
 
    $body .= "Telephone: " . $tel . "\n"; 
 
    $body .= "Website: " . $website . "\n"; 
 
    $body .= "Message: " . $message . "\n"; 
 

 
    //Receiving email 
 
    mail("[email protected]","New email",$body); 
 

 
    
 
?> 
 

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<script>alert("Your message has been sent successfully. We will contact you shortly.");</script> 
 
<meta HTTP-EQUIV="REFRESH" content="0; url=index.html"> 
 

 
</head>

我在做什么错在这里?每当我点击提交按钮,它将我带到我的send-mail.php页面,但没有通知出现,并且电子邮件不发送。我非常感谢任何帮助,我知道这些问题在Stack中出现得太频繁 - 就像我说的,我花了五个小时筛选联系表单问题,试图弄清楚我在这里弄了些什么。

回答

2

缺少这行的最后一个分号 - 它应该阅读:

$tel=$_POST['tel']; 

也是你实际上是在PHP页面的顶部声明<?php。此刻的你有<?,它应该是

<?php 
+0

* *“在你有<那一刻,它应该是

+2

另一个问题是$ body。=“Name:”。 $名称。 “\ n” 个;应该是$ body =“Name:”。 $名称。 “\ n” 个;第一个等号不应该在它前面有一个点。 – Kobbe

+0

@Fred cos其良好的做法 - 如此处所述:(php.net/manual/en/language.basic-syntax.phptags.php) - PHP也允许短打开标签<? (因为它只有在使用short_open_tag php.ini配置文件指令启用时才可用,或者使用--enable-short-tags选项配置了PHP),因此这是不鼓励的。 – gavgrif