转储从POST获取的php变量

转储从POST获取的php变量,php,Php,我在页面顶部运行了一些PHP代码 if(isset($_POST['arrow1']) and isset($_POST['arrow2'])) {....} 以及一个表单,用于将数据发送到此页面。我想做的是在顶部的php代码运行后清空变量,以便刷新时不再运行 我怎样才能做到这一点 多谢各位 if(isset($_POST['arrow1']) and isset($_POST['arrow2'])) { unset($_POST); } 将取消设置所有$\u POST变量。 你也可

我在页面顶部运行了一些PHP代码

if(isset($_POST['arrow1']) and isset($_POST['arrow2'])) {....}
以及一个表单,用于将数据发送到此页面。我想做的是在顶部的php代码运行后清空变量,以便刷新时不再运行

我怎样才能做到这一点

多谢各位

if(isset($_POST['arrow1']) and isset($_POST['arrow2'])) 
{
   unset($_POST);
}
将取消设置所有$\u POST变量。 你也可以这样做:

$_POST['arrow1'] = NULL;
$_POST['arrow2'] = NULL;

您只需在同一页面上重定向用户即可

在本例中,在脚本执行之后,如果他想刷新页面,则页眉中不再有变量

<?php
header("location:[your/path.php]");

我知道这个问题有点过时,但是

您的表单将只运行一次。。。或者每次。。。取决于加载页面的方式。如果表单提交了POST,那么不安就有点无心了。假设顶部的表格上写着: 按下按钮并提交“hello world”。按下按钮,page get's load
(由于您不使用ajax,它必须加载新内容)
,“hello world”被提交,提交后get's unset。表格还在那里。。你再按一下按钮。。。同样的事情再次发生。为了避免这种情况,您可能必须使用
$\u会话

样品

if((!isset($_SESSION['arrowsWasSet'])) 
{
    if(isset($_POST['arrow1']) and isset($_POST['arrow2']))
    {
        unset($_POST);
        $_SESSION['arrowWasSet'] = true;
    }
}
另一种方法是将数据存储到会话中,并检查其是否已设置为会话

if(isset($_POST['arrow1']) && isset($_POST['arrow2'])) 
{
    if(!isset($_SESSION['arrows']))
    {
        $_SESSION['arrows']['arrow1'] = $_POST['arrow1'];
        $_SESSION['arrows']['arrow2'] = $_POST['arrow2'];
    }
    unset($_POST); 
    //you can call this to get a clean post everytime, but no need.
}
里面有打字机吗?我的意思是这不应该是指
array1
而不是
arrow1
?:)

无论如何,
$\u会话
在刷新后仍然有效。因此,在刷新页面后,您仍然可以检查是否发生了某些事情。要清空会话,可以执行以下操作:

  • 会话\u销毁(杀死洞会话)
  • 重新启动浏览器(不刷新,完全重新启动!终止会话)
  • 击键
    ALT
    +
    F5
    (击杀孔会话)
  • 手动清除浏览器缓存(清除孔会话)
  • $\u会话['xy']=NULL(在会话中终止部分)
  • unset($_会话['xy'])(在会话中终止部分)

通过操纵检测到表单提交后生成的HTML。在实践中,这意味着您应该执行一个。这将取消所有POST数据的设置。根据我对OP的理解,只应清空
arrow1
arrow2
。刷新页面具有相同的效果,您会怎么做?您可能希望设置为null而不是空字符串。PHP可能并不挑剔它的类型,但可读性和程序员的理智是;)PS:你也可以
unset($_POST['arrow1'])@待完成。虽然取消设置与将其设置为NULL几乎具有相同的效果^^^绝对,这纯粹是装饰性的,但我认为从长远来看,这非常重要;)再想一想,如果设置为NULL,则该键应该仍然存在于$\u POST中。取消设置将删除整个元素。当您在重定向标头中未使用绝对URL时,许多浏览器会失败。此外,plz使用大写字母
位置
。你不会相信有些浏览器是多么挑剔,尤其是移动浏览器,即使缺少空间也会失败。