为什么我的 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。
我一直在为我父亲的网站工作一段时间,我一直对联系表格和订单表格感到沮丧。我才刚刚开始学习 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。