-1

这是它假设连接到contact.html页面然后是感谢页面之后的PHP。我只想要一个联系表。它不会将文件识别为.php。我确实是这样保存的。

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $number = $_POST['number'];
    $message = $_POST['message'];
    $from = 'From:you'; 
    $to = 'me@hotmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message";


if ($_POST['submit']) {
    if ($name != '' && $email != '') {
        if ($human == '4') {                 
            if (mail ($to, $subject, $body, $from)) { 
            echo '<p>Your message has been sent!</p>';
        } else { 
            echo '<p>Something went wrong, go back and try again!</p>'; 
        } 
    } else if ($_POST['submit'] && $human != '4') {
        echo '<p>You answered the anti-spam question incorrectly!</p>';
    }
    } else {
        echo '<p>You need to fill in all required fields!!</p>';
    }

  header("Location: thanks.html");

}

?>
4

4 回答 4

2

假设您希望从表单运行它,您需要按如下方式设置 HTML 表单标记:

<form action="contact.php" method="post">

然后您应该重命名contact.htmlcontact.php(任何文本编辑器都应该能够轻松地做到这一点)。

最后,您正在使用 PHP 的header()函数,如果您在调用之前已将其输出到浏览器,则会导致错误。这包括使用 PHP 的echo结构。您的contact.php文件应如下所示(并且与包含表单的 HTML 文件位于同一目录中):

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $number = $_POST['number'];
    $message = $_POST['message'];
    $from = 'From:you'; 
    $to = 'me@hotmail.com'; 
    $subject = 'Hello';
    $human = $_POST['human'];

    $body = "From: $name\n E-Mail: $email\n Number: $number\n Message:\n $message";


if ($_POST['submit']) {
    if ($name != '' && $email != '') 
    {
        if ($human == '4') 
        {                 
            if (mail ($to, $subject, $body, $from)) 
            { 
                header("Location: thanks.html");
            } 
            else 
            { 
                echo '<p>Something went wrong, go back and try again!</p>'; 
            } 
        } 
        else
        {
            echo '<p>You answered the anti-spam question incorrectly!</p>';
        }
    } 
    else 
    {
        echo '<p>You need to fill in all required fields!!</p>';
    }
}
?>

注意:我稍微修正了您的布局并更改了您使用的一些条件。第一个elseif实际上是多余的,一个else意志就足够了。

于 2013-08-20T13:37:56.477 回答
1

您写道这是一个名为的文件,contact.html或者您尝试连接到contact.html- 这是正确的吗?你应该使用contact.php.

于 2013-08-20T13:33:21.720 回答
0

PHP 不会在没有服务器配置的情况下以 .html 文件扩展名执行(例如,如果您使用 Apache,则 .htaccess 文件中的指令)。

由于您似乎拥有托管网络托管帐户,因此您可能无法自行设置。如果您愿意,我建议您询问您的托管服务提供商。如果没有,将文件重命名为具有 .php 文件扩展名应该可以工作。

于 2013-08-20T13:34:58.167 回答
0

尝试检查 php 是否正常工作:

<?php phpinfo(); ?>

如果您没有看到任何输出,则您的 php 代码将不会被解析,可能是因为您的联系人站点有一个 *.html 结尾,它似乎需要一个 *.php 文件结尾才能被解析,

如果你想使用扩展名'*.html',你必须在你的网络服务器 - 配置文件中添加一些行,

看看这个:也许是一个解决方案

于 2013-08-20T13:39:13.357 回答