PHP联系表格问题(重定向)

时间:2013-10-16 16:15:41

标签: php

我正在尝试设置我的PHP联系人表单,当您点击“发送”时,它会说谢谢并将您重定向到主页。这是我的php和html脚本。我知道它只需要调整几行,但不确定究竟如何。我将mail.php文件上传到我的网站目录。

  <?php
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$call = $_POST['call'];
$website = $_POST['website'];
$priority = $_POST['priority'];
$type = $_POST['type'];
$message = $_POST['message'];
$formcontent=" From: $name \n Phone: $phone \n Call Back: $call \n Website: $website \n Priority: $priority \n Type: $type \n Message: $message";
$recipient = "horgantm@gmail.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
if(mail($recipient, $subject, $formcontent, $mailheader))

    { 
        header("Location: http://www.darthvixcustomsabers.com/index.html");
        exit;   
    }
    else
    {
        die("Error!");
    }
echo "Thank You!" . " -" . "<a href='index.html' style='text-decoration:none;color:#ff0099;'> Return Home</a>";

?>


<!doctype html>
<html>
<head>
<title> DV Custom Sabers </title>
<meta charset="utf-8">
<link type="text/css" rel="stylesheet" href="style/kotorsale.css" />
<meta name="viewport" content="width=device-width" />


</head>
<div class="header"><a href="index.html">Darthvix Custom Sabers</a></div>

<div class="header1">DV Custom Sabers is the place to go for your saber needs!</div>

<div class="logo"><a href="index.html"><img src="images/logo.png" alt="schedule" height="200" width="350" border="0"></a></div>

<ul id="nav">
    <li><a href="index.html">Home</a></li>
    <li><a href="aboutme.html">About Me</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="Gallery.html">Gallery</a></li>
    <li><a href="kotorsale.html">For Sale</a></li>
    <li><a href="buildlog.html">Build Log</a></li>
    <li><a href="contact.html"> Contact Us</a></li>
</ul>
<div id="form">
<<form action="mail.php" method="POST">

<p>Name</p> <input type="text" name="name">

<p>Email</p> <input type="text" name="email">


<p>Priority</p>

<select name="priority" size="1">

<option value="Low">Low</option>

<option value="Normal">Normal</option>

<option value="High">High</option>

<option value="Emergency">Emergency</option>

</select>

<br />

<p>Message</p><textarea name="message" rows="6" cols="25"></textarea><br />

<input type="submit" value="Send"><input type="reset" value="Clear">

</form>

</div>
</body>
</html>

2 个答案:

答案 0 :(得分:0)

究竟什么不起作用或者您需要帮助?请更具体一点。

话虽如此,我立即看到了一些问题。

您的主要问题是此行无效,这可能导致整个脚本失败:

$recipient = "horgantm@gmail.com<script type="text/javascript"> ...

您必须转义双引号或改为使用单引号。 (看看突出显示如何变化?)

此行中还有一个额外的括号:

<<form action="mail.php" method="POST">

为什么收件人字段中还嵌入了脚本?

编辑:OP在我的回答发布后更改了代码。

答案 1 :(得分:0)

问题可能在于您没有重定向任何人。

我会像这样编辑你的代码


    if(mail($recipient, $subject, $formcontent, $mailheader))
    {
        header("Location: http://www.example.com/home.php?successfulySent");
        exit;   
    }
    else
    {
        die("Error!");
    }

在页面上,您希望重定向用户


    if(isset($_GET['successfulySent']))
        echo "Thank you for sendinf a message!";

修改

我不希望我们被误解。

我创建了这个条件,因为你写了关于重定向的声明…and redirects you to the home page.…,而你的代码中没有它。

您在问题中编辑了代码,但是您忘记删除最后一行(echo "Thank You!" . " -" .…),现在它已被使用,因为该脚本会重定向用户或停止并显示消息Error!

然后,URL参数?successfulySent对于脚本非常重要,您可以在其中重定向,知道这是应该做的事情。

因此,将Location网址更改为http://www.darthvixcustomsabers.com/index.php?successfulySent

我写了php扩展名,是的,你需要把这个文件作为PHP文件类型,因为你放置了PHP条件。在大多数情况下,我只会将index.html重命名为index.php

在哪里放置第二个条件,就在那里,您希望在哪里显示消息。

<?php if(isset($_GET['successfulySent'])):?>
    <div class="message" id="message-sent">
        <p>Your message has been successfuly sent to our team...</p>
    </div>
<?php endif;?>