2015-04-22 42 views
3

不知道我在做什么错在这里...获取PHP变量从页面到其他

在一个页面上,我关闭启动会话的代码开始的开始,是这样的:

session_name('raprec'); 
session_start(); 

然后我被分配会话变量到PHP变量,我需要重新使用收集整个代码会话变量,如下所示:

$_SESSION['item_type'] = $item_type; 
    $_SESSION['special_rope_fields'] = $special_rope_fields; 
    $_SESSION['zoom_obj'] = $zoom_obj; 

在第二页,在这里我需要的项目我打电话给再次会话:

session_start(); 
session_name('raprec'); 

然后我尝试使用它们本第二页上,如下所示:

$special_rope_fields = $_SESSION['special_rope_fields']; 
$item_type = $_SESSION['item_type']; 
$zoom_obj = $_SESSION['zoom_obj']; 

但它不工作...

我尝试看看是否有什么是这样的:

print_r($_SESSION['special_rope_fields']); 
print_r($_SESSION['item_type']); 
print_r($_SESSION['zoom_obj']); 

但是什么也没有出现。

我在这里做错了什么?我怎样才能正确地将这些变量从一个页面传递到下一个页面?也许有更简单的方法吗?

+0

设置 session.auto_starttrue确保你调用'session_start'在每个脚本的最开始的session_name()功能没有本质影响。检查您的PHP日志中是否有关于输出后发送的标题的警告。 – Barmar

+0

你可以用session_name试试吗,也不需要第二次启动它,这会引发警告,你确定这是同一个应用程序吗?因为那将是一个问题。即如果您运行两个不同的php文件,那么您可能会运行两个不同的应用程序。第一页和第二页是什么样的? – blamb

回答

0

根据本文档,http://php.net/manual/en/function.session-name.php您需要在调用session_name后调用session_start。

编辑 @maztch对不起,我更新。感谢您指出了这一点。我倒退了,但那就是我的意思,我试图指出文档有一个特定的顺序......谢谢。在这种情况下,它根本就不是答案,因为它毕竟没有解决这个问题。哎呀..

+0

对不起,但在doc上却恰恰相反。 session_name必须在session_sart之前设置 – maztch

2

我测试你的代码在我的服务器和我有同样的结果,你,没事......然后,在second page,我已经改变了:

session_start(); 
session_name('raprec'); 

session_name('raprec'); 
session_start(); 

会议raprec现在按预期工作。


NOTE:

,如果你在php.ini