2013-02-21 105 views
0

我想设置一个简单的联系表单。一切都是正确的风格,但是当我点击提交它不会带我到任何地方,只是试图打开contact.php。我认为在实际发送消息的代码中缺少一些东西。我敢肯定,这件事很简单,我错过了,但这有点凌驾于我的头上。任何帮助表示赞赏。联系表格不发送

<form action="mail.php" method="POST"> 
    <p>Name</p> <input type="text" name="name"> 
    <p>Company</p> <input type="text" name="company"> 
    <p>Email</p> <input type="text" name="email"> 
    <p>Phone</p> <input type="text" name="phone"> 
    <p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br /> 
    <input type="submit" value="Submit"> 
    </form> 

<?php 

$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 

$to ='[email protected]'; 
$send_contact=mail($to,$subject,$message,$header); 

// Check, if message sent to your email 
// display message "We've received your information" 

if($send_contact){ 
echo "We've received your contact information"; 
} 
else { 
echo "ERROR"; 
} 
?> 

编辑:我是能够增加对mail.php完整的URL后,终于收到一封电子邮件......但是,没有一个信息,除了消息被列入。发件人被列为Apache ...我如何确保在表单中输入的信息将包含在电子邮件中?感谢迄今为止所有的帮助。

+0

它尝试打开contact.php或mail.php?确保PHP在你的服务器上正常运行。 – 2013-02-21 05:12:57

+0

它试图打开mail.php。如果能够回答您的问题,我可以在我的页面上看到我的其他PHP文件中的信息和样式(在我点击提交之前)。 – usefulbattery 2013-02-21 05:17:13

+0

检查您的mail.php权限 - 尝试755,尝试777.也直接去mail.php,看看会发生什么。你可以在这里发布mail.php的内容吗? – 2013-02-21 05:27:48

回答

0

由于您在同一页面内指定代码,因此您可以在表单中省略action。 另外,一旦脚本运行,就提供运行PHP的条件。

<?php 
if(isset($_POST['submit'])){ 
$name = $_POST['name']; 
$company = $_POST['company']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 
$formcontent="From: $name \n Message: $message"; 
$recipient = "[email protected]"; 
$subject = "Contact Form"; 
$mailheader = "From: $email \r\n"; 

$to ='[email protected]'; 
$send_contact=mail($to,$subject,$message,$header); 

// Check, if message sent to your email 
// display message "We've received your information" 

if($send_contact){ 
echo "We've received your contact information"; 
} 
else { 
echo "ERROR"; 
} } 
?> 
<form action = "<?= $_SERVER["PHP_SELF"]; ?>"method="POST"> 
    <p>Name</p> <input type="text" name="name"> 
    <p>Company</p> <input type="text" name="company"> 
    <p>Email</p> <input type="text" name="email"> 
    <p>Phone</p> <input type="text" name="phone"> 
    <p>Message</p><textarea name="message" rows="4" cols="25"></textarea><br /> 
    <input type="submit" value="Submit" name="submit"> 
    </form> 

希望它有帮助!

编辑:我不知道什么是当前的文件名,但保持动态,我已经提到$_SERVER["PHP_SELF"]这不是一个建议的用法。 但是,试试吧! :)

+0

谢谢你的帮助。不幸的是,我在提交后收到了404条消息(当然,我输入了自己的电子邮件地址代替了该行)。这可能是因为它不再链接到我的mail.php了吗? – usefulbattery 2013-02-21 05:34:34

+0

我刚编辑我的答案。现在检查代码。 – Karma 2013-02-21 05:38:12

+0

噶,谢谢。我没有简单地使用我的mail.php,而是包含了一个直接的链接......我认为这可能一直是阻碍。不过,我现在有一个新问题.... 我刚刚收到电子邮件,但它是指出它来自“Apache”,并没有列出除电子邮件中的消息外的任何信息。我如何确保包含所有必要的信息? – usefulbattery 2013-02-21 05:44:12