如何自动重定向到另一个PHP脚本传递一些数据?

时间:2011-02-02 05:46:43

标签: php session redirect

我有一个处理某些数据的脚本,不会呈现任何文本,然后将用户重定向到最终页面。 在最后一页上,用户应该能够看到一些数据。 我使用SESSION变量来传递它但不知何故它正在丢失。 它看起来像这样

$_SESSION['ses']['field1'] = $var1;
header("Location: http://page.com/another.php");
exit;

(我把session_start()放在两个文件的开头)。 该标题重定向是否“丢失”会话ID? 如果这是错误的,并且不会起作用,那么另一种方式是什么? 我只能想象使用$ _GET或cookies,但两者都不太安全且易于操作。

1 个答案:

答案 0 :(得分:3)

在新页面上明确发送会话ID,如下所示:

session_start();
$_SESSION['ses']['field1'] = $var1;
header("Location: http://page.com/another.php?phpSESSID=".session­_id());

然后在新页面中,获取会话ID,使用它就像这样

<?php
session_id($_GET['phpSESSID']);
session_start();

...

这会奏效。如果您使用的是古老的PHP版本,那么它是known PHP bug。此外,有时会在重定向时丢失会话,因此您需要获取可以恢复会话的会话ID。有些浏览器可以正常使用重定向,但有些浏览器不能像IE6一样。