将变量传递给新的HTTP请求

时间:2011-05-12 21:15:37

标签: php oop http

正如标题所说,还有另一种方法可以将变量从“当前”页面传递到“下一个”(新的HTTP请求)页面而不使用sessions / cookies / $ _ GET吗?

好吧,我猜$ _POST也可以是一个选项,但这里的问题是,我想将这个变量从已执行的$ _POST传递回 off-the-post 环境页面,但是在我之间我有一个重定向,不允许重新发布相同的表格。

换句话说,基本上,我正试图“制作”无缝PRG,但会话/ cookies / $ _ GET不是一种选择。

是的,我正在使用类(因此oop标签)。因此可能是某种神奇的功能,或输出控制

这必须在PHP环境中工作,不能使用JavaScript或其他非服务器端语言。

我也有一种不好的感觉,这是不可能的,但希望我错了,并且有一个解决方案。

提前致谢!

更新号码1

基本上,我想创建一个带有响应的PRG。

在$ _POST里面我正在向数据库添加数据。我希望此响应保存有关此数据库查询是否成功的信息。有点让这个$ _POST进程几乎对用户不可见。是的,稍后会显示对结果的回复。

所有这一切都发生在一种方法中:

if($_POST){
    // insertion
}else{
    // display no-post environment, if response exists (therefore posted) display response too
}

像这样......

会话不是一种选择,因为这是一种API。

更新号码2

嗯,让我稍微改一下这个问题。好吧,似乎我实际上并不需要传递变量。我想要做的是,POST后有两个不同的结果,所以在下一页加载时我可以知道POST中的操作是否成功。那么,如果没有使用sessions / cookies / $ _ GET来获得这个结果,还有哪些其他选项?

目前有:

  • 临时数据库使用:一个不错的选择,但我希望看到不同的选项;

2 个答案:

答案 0 :(得分:1)

HTTP is a stateless protocol;因此,添加状态不会是一种简单的内置方式。也就是说,我认为会话是实现您想要做的事情的最佳方式。如果您正在做的事情不在浏览器中,可以尝试某种会话密钥设置(如Facebook平台使用)。

答案 1 :(得分:1)

由于您已经在使用数据库,因此处理此问题的最简单方法似乎是根据帖子调用更新某种临时表格,然后在您正在执行标题的页面上重定向到,读取该表中的信息。根据您对此的限制(没有GET,SESSION,Cookie或Javascript),当您从一个页面重定向到另一个页面时,您将无法维护变量。

因此利用该数据库并从PHP中解脱出来。最初我打算建议使用cURL,但我不认为这会对你有帮助(虽然你可能想要查找它,如果你不熟悉它,因为它可能是你正在寻找的)