Home  >  Article  >  Backend Development  >  PHP页面跳转 丢失 $_POST 数据

PHP页面跳转 丢失 $_POST 数据

WBOY
WBOYOriginal
2016-06-13 13:38:29923browse

求助:PHP页面跳转 丢失 $_POST 数据

PHP页面跳转 丢失 $_POST 数据

test.php 内容如下

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$_POST["aa"] = 111;
header("Location: " ."/test1.php");
exit(0);



test1.php 代码如下
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
var_export($_POST);



在URL中 输入http://localhost/test.php 跳转到了 test1.php页面。
但是输出的 $_POST内容为空...

求助各位大侠,问题到底出在哪儿了。

------解决方案--------------------
你知道$_POST是指什么吗
------解决方案--------------------
HTTP POST 变量:$_POST
注意: 在 PHP 4.1.0 及以后版本使用。之前的版本,使用 $HTTP_POST_VARS。

通过 HTTP POST 方法传递的变量组成的数组。是自动全局变量。

这是一个“superglobal”,或者可以描述为自动全局变量。这只不过意味这它在所有的脚本中都有效。在函数或方法中不需要使用 global $_POST; 来访问它,就如同使用 $HTTP_POST_VARS 一样。

$HTTP_POST_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_POST_VARS 和 $_POST 是不同的变量,PHP 处理它们的方式不同)。

如果设置了 register_globals 指令,这些变量也在所有脚本中可用;也就是,分离了 $_POST 和 $HTTP_POST_VARS 数组。相关信息,请参阅安全的相关章节使用 Register Globals。这些单独的全局变量不是自动全局变量。 

只有在form表单提交时,才用post在后台接收数据。
------解决方案--------------------
这样能获取到才怪,你根本就没有吧$_POST数据传递过去,找个http协议手册去看看

你可以通过url参数传递数据,test1.php用$_GET获取

PHP code
$_POST["aa"] = 111;
header("Location: " ."/test1.php?aa=".$_POST["aa"]);
<br><font color="#e78608">------解决方案--------------------</font><br>跳转没法传参的<br>除非你用框架的那种带传参的是可以赋值的(不是真正的跳转是输出页面)
<br><font color="#e78608">------解决方案--------------------</font><br>header("Location:/test1.php")只是告诉浏览器,跳转到test1.php.<br>想不通为何要这么设计程序,原始数据直接提交到test1.php处理,轻松解决了不是。<br>
探讨

谢谢楼上三位回答。$_POST明白了一点。
请问 后台处理的数据,如何传回页面?不用$_POST 用什么?

------解决方案--------------------
额...... 你还是瞅瞅PHP的CURL吧!
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn