为什么我的 HTML/PHP 表单回显 PHP 文件并在指定 post 时使用 get?

Why is my HTML/PHP form echoing the PHP file and using get when post is specified?

我一直在为我父亲的网站工作一段时间,我一直对联系表格和订单表格感到沮丧。我才刚刚开始学习 HTML,而且我还不是很了解。

情况如下: 当我按下提交按钮时,整个 PHP 代码将以纯文本形式打印到浏览器屏幕上。

联系表格和订单表格都会出现这种情况,我会将联系表格粘贴到下面。

                            <form id="contact-form" action="php/mail.php" method="POST">
                                <div class="control-group">
                                    <div class="controls">
                                        <input class="span12" type="text" id="name" name="name" placeholder="* Your name..." />
                                        <div class="error left-align" id="err-name">Please enter name.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <input class="span12" type="email" name="email" id="email" placeholder="* Your email..." />
                                        <div class="error left-align" id="err-email">Please enter valid email adress.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <textarea class="span12" name="comment" id="comment" placeholder="* Your query..."></textarea>
                                        <div class="error left-align" id="err-comment">Please enter your query.</div>
                                    </div>
                                </div>
                                <div class="control-group">
                                    <div class="controls">
                                        <button id="send-mail" class="message-btn">Send message</button>
                                    </div>
                                </div>
                            </form>

这里是 PHP:

<?php
include 'functions.php';

if (!empty($_POST)){

$data['success'] = true;
$_POST  = multiDimensionalArrayMap('cleanEvilTags', $_POST);
$_POST  = multiDimensionalArrayMap('cleanData', $_POST);

$emailTo ="myemail@domain.com"; 

$emailSubject = "Test";

$name = $_POST["name"];
$email = $_POST["email"];
$comment = $_POST["comment"];
if($name == "")
$data['success'] = false;

if (!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $email)) 
$data['success'] = false;


if($comment == "")
$data['success'] = false;

if($data['success'] == true){

$message = "NAME: $name<br>
EMAIL: $email<br>
COMMENT: $comment";


$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html; charset=utf-8" . "\r\n"; 
$headers .= "From: <$emailFrom>" . "\r\n";
mail($emailTo, $emailSubject, $message, $headers);

$data['success'] = true;
echo json_encode($data);
}
}

email部分填写我的email。

回顾一下,当我按下提交按钮时,整个 php 代码以纯文本形式回显到我的浏览器。

我看不出有什么问题,请帮忙...

PHP 代码在您 post 表单时打印。

这确实意味着您的计算机上没有安装 php,或者您的网络服务器没有启用 php 模块。

尝试安装 apache 或 IIS 或任何其他网络服务器 + php 然后 运行 您在本地主机 url 上的联系表 url。

例如http://localhost/contactform.php