php $ _POST变量未保存

时间:2016-01-30 01:47:17

标签: php post

我目前在表单操作上有一些php代码,并且正在使用

更新到表单的下一页

<?php echo $_POST['var here']; ?>

它正在工作,但我注意到当我试图刷新页面时,它要求确认重新提交。当我重新提交时,它可以在其中进行汇总的选项卡中工作,但在另一个新选项卡中,它不会显示显示的php post变量。我甚至在下一步看到当我在提交表单操作后打开第二页时,php post变量就消失了......

帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

当您使用with CTE_TB as ( select a.tableA_ID, a.name, isnull(sum(b.qty),0) as [SumB] from tableA a left join tableB b on a.tableA_ID = b.tableA_ID group by a.tableA_ID, a.name), CTE_TC as (select a.tableA_ID, isnull(sum(c.qty),0) as [SumC] from tableA a left join tableC c on a.tableA_ID = c.tableA_ID group by a.tableA_ID) select name, SumB, SumC from CTE_TB a inner join CTE_TC b on a.tableA_ID=b.tableA_ID order by name; 提交表单时,它会向服务器发送发布请求,从而填充<form method="post" />。当您在新标签页中打开链接时,它不再是发布请求,而是获取请求。这就是为什么你在$_POST中看不到任何内容。

$_POST - 通常来自表格
$_POST - 来自网址上的值(查询字符串$_GET

你可以找到很多关于它的资源。 You can start here

如果您想保留这些值,可以将它们保存到会话中:

myscript.php?myvar=Joe

现在,该值存储在会话中,因此您可以在新标签页中访问该页面,但该页面仍然存在。

答案 1 :(得分:0)

这听起来像是理想的行为。只有在创建后期操作时才应填充$_POST变量。如果您希望跨页面存储变量,可以将其存储在PHP中的$_SESSION var中,或者处理前端$_COOKIE业务。如果你总是要从后端渲染页面,那么$_SESSION就是你要走的路。在cookiessessions阅读时,永远不会太迟。

它的缺点是你想要做这样的事情:

<?php 
session_start();
if ($_POST['var']) {
  $_SESSION['var'] = $_POST['var'];
}

echo $_SESSION['var'] ?: $defaultValue;

然后您会注意到,只有当您发布并且在此之前不存在时,该消息才会发生变化。