Php 如何在表单中清空$\u POST变量?
我有一个评论表单,提交后很难清空帖子,这是我的表单:Php 如何在表单中清空$\u POST变量?,php,forms,Php,Forms,我有一个评论表单,提交后很难清空帖子,这是我的表单: <?php if(isset($_POST['comment'])) { $fields = array( "module" => db_decode($node_delta['tid']) , "delta" => db_decode($node_delta['nid']) , "title" => db_decode($_POST['subject']
<?php
if(isset($_POST['comment']))
{
$fields = array(
"module" => db_decode($node_delta['tid']) ,
"delta" => db_decode($node_delta['nid']) ,
"title" => db_decode($_POST['subject']) ,
"author" => db_decode($_POST['username']) ,
"content" => db_decode($_POST['comment']) ,
"status" => db_decode('pending') ,
"date_comment" => new Zend_Db_Expr('NOW()') ,
) ;
db_insert("comment", $fields) ;
unset($_POST);
}
?>
<form class="form-horizontal" method="post" id="comment" action="" role="form">
<input type="hidden" id="comment-element-0" value="comment" name="form">
<input type="hidden" id="comment-element-1" value="insert" name="action">
<div class="form-group"><label for="comment-element-2" class="control-label col-md-3">
<span class="required">* </span>Username</label>
<div class="col-md-6">
<input type="text" id="comment-element-2" required="" value="" name="username" class="form-control input-md">
</div>
</div>
<div class="form-group"><label for="comment-element-4" class="control-label col-md-3">
<span class="required">* </span>Subjet</label>
<div class="col-md-6">
<input type="text" id="comment-element-4" required="" value="" name="subject" class="form-control input-md">
</div>
</div>
<div class="form-group"><label for="comment-element-5" class="control-label col-md-3">
<span class="required">* </span>Comment</label>
<div class="col-md-6">
<textarea class="form-control input-md" id="comment-element-5" required="" name="comment" rows="5"></textarea>
</div>
</div>
<div class="form-group">
<div class="form-actions col-md-9 col-md-offset-3 text-right">
<input type="submit" id="comment-element-6" class="btn btn-primary" name="" value="Submit">
</div>
</div>
</form>
*用户名
*主题
*评论
这里的问题是,如果我刷新了post的值,仍然有相同的内容,为什么
unset($\u post)代码>不起作用吗?有什么帮助吗?非常感谢 这里的问题是您正在刷新页面,从而重新发布请求。
为了避免这种情况,您可能应该在当前帖子之后重定向
F/e您可以这样做,而不是取消设置($\u POST)
确保头之前没有内容,并且需要模具来确保脚本不会继续。这将重新加载页面,并消除使用F5向表单发送垃圾邮件的可能性。这是浏览器中的一种功能。由于尚未将表单数据加载回HTML部分(到处都是空值),因此不能由脚本加载回数据
另外,您不应该取消设置$u POST。这是一个内部变量,虽然这样做有点合法,但这是一种非常糟糕的做法——您(或其他人)脚本中的任何其他内容都可能依赖于它的存在
你需要了解发生了什么$_波斯特不是这里的罪魁祸首。检查您的浏览器扩展(可能是表单填充)。没有自动机制可以将变量“无声地加载回”HTML表单中;所以除非你给出类似的东西
<input ...... value="<?=$_POST["foo"]?>">
您的浏览器记住最后一个表单的变量。它不使用$\u POST数组。
在您的情况下,重定向是一种很好的做法。您还可以使用java脚本清理表单,但这不是一个好主意。使用unset($\u POST)代码>在if检查之前。使用$\u POST=array()代码>这有时是一个有用的浏览器-您使用的是什么浏览器?浏览器不相关-处理在服务器端“空”是什么意思?用户何时刷新页面?诀窍是提交后重定向!
<input ...... value="<?=$_POST["foo"]?>">