HTML 表单 POST 数据在提交时显示为空白
Posted
技术标签:
【中文标题】HTML 表单 POST 数据在提交时显示为空白【英文标题】:HTML Form POST data shows as blank when submitted 【发布时间】:2014-07-03 11:05:08 【问题描述】:我有一个小表格,一旦提交,帖子数据就会设置为变量,然后在电子邮件中使用,当发送电子邮件时,帖子数据是空白的,当我尝试回显 POST 数据时它是也是空白。我不知道为什么,这是代码。
<?php if(!isset($_POST['submit'])): ?>
<form name="contactForm" method="POST" id="contactForm">
<table>
<tr>
<td><input name="name" id="name" class="fields" type="text" placeholder="name"></td>
</tr>
<tr>
<td><input name="email" class="fields" type="email" placeholder="email"></td>
</tr>
<tr>
<td><input name="phone" class="fields" type="phone" placeholder="phone(optional)"></td>
</tr>
<tr>
<td><textarea name="message" class="fieldsMessage" name="message" placeholder="Message"></textarea><?php $ermes; if(!empty($ermes))echo "<br>".$ermes;?></td>
</tr>
<tr>
<td><input class="submitButton" type="submit" name="submit" value="Submit">
</td>
</tr>
</table>
</form>
<?php else: ?>
<h2 style="padding-bottom: 80px; margin-bottom: 0px; text-align: center;" class="title">Your Message Was Sent</h2>
<?php
if(isset($_POST['submit']))
if(empty($_POST['name']))
echo "<script type=text/javascript>alert('PLEASE ENTER YOUR NAME');</script>";
//end name if
elseif(empty ($_POST['email']))
echo "<script type=text/javascript>alert('PLEASE ENTER YOUR EMAIL');</script>";
//end else if email
elseif(empty($_POST['message']))
echo "<script type=text/javascript>alert('Please enter a message');</script>";
// End elseif message
//End isset submit if
else
$name=$_POST['name'];
$email=$_POST['email'];
$message=$_POST['message'];
if(isset($_POST['phone']))
$phone=$_POST['phone'];
// isset phone
else
$phone="";
$to="sample@live.com";
$subject="New Contact Form Email";
$message="Name: ".$_POST['name'];
$headers='From: Trip Galapagos Forms';
mail($to, $subject, $message);
//End else
?>
<?php endif;?>
【问题讨论】:
你需要为表单定义一个动作 【参考方案1】:表单中的操作在哪里?
action 属性指定提交表单时将表单数据发送到何处。
更多信息请参考html form taghttp://www.freecontactform.com/html_form.php#htmlform
同时检查here 和HTML_forms_-_the_basics
【讨论】:
如果php脚本在同一个文件中,是否需要在表单中进行操作?【参考方案2】:您错过了在代码末尾关闭 if 语句 endif;
。
如果您没有在form
中指定action
。数据将发布在同一位置。
【讨论】:
@user2684521 启用您的错误报告,然后在此处发布您的错误。ini_set('display_errors',1);error_reporting(1);
【参考方案3】:
form
的 action
丢失。当您将数据发布到同一页面时,您必须使用
action="<?php echo $_SERVER['PHP_SELF']?>"
或 action=""
在表单标签中。
改变
<form name="contactForm" method="POST" id="contactForm">
到
<form name="contactForm" method="post" action="" id="contactForm">
【讨论】:
以上是关于HTML 表单 POST 数据在提交时显示为空白的主要内容,如果未能解决你的问题,请参考以下文章