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"]?>">