2009-09-23 68 views
0

我有一个真正无法解决的问题,我从来没有过,我有一个注册页面/表单和一个处理页面,提交到处理页面上,我设置了任何错误用户数据,如空字段,并将其设置为会话VAR阵列PHP中奇怪的会话范围问题

$_SESSION['signup_errors'] = $signup_errors; 

$ signup_errors,是我所到会话一个数组,然后我就可以访问同一页面上的会话数据,但我只是改变了我的站点附近使用mod-rewrite来更改URL的唯一东西,我似乎可以想到的是在我的注册表单上,我无法再访问这些会话变量,现在我使用mod-rewrite url就像这个domain.com/account /新,它曾经是domian.com/?p=account.new所以现在看起来它在一个不同的文件夹中,可能与它有关吗?

我试过调试过很多,这是我能想出的唯一可能是因为它似乎是一个不同的目录现在因为mod重写也许会使会话无法访问?

回答

3

您确定您正在访问的每一页上开始会话吗?我会检查以确保有

session_start(); 

只要有必要。

此外,什么是

print_r($_SESSION); 

回报?什么都可以?如果不是,它可能表明我在说什么。

+0

是会话开始,这里是踢球者,我可以在同一页面上访问另一个os会话vars,但不是那个,即时将去保持玩它,但这是一个奇怪的一个 – JasonDavis 2009-09-23 05:52:11

+0

是否有可能你是unsetting它,还是重置为空数组?我会检查你分配它的所有实例。 – 2009-09-23 05:53:49

+0

我可以更改会话名称,然后它可以在我疯狂的复杂应用程序中的某个地方运行,它必须要杀死那个特定的会话名称 – JasonDavis 2009-09-23 05:53:55

0

我会检查你是不是在改变域名。例如。 domain.com - > www.domain.com

通常情况下,cookie用于跟踪会话ID,默认情况下,Cookie绑定到单个域。 I.E.如果该会话是在www.domain.com上创建的,则当您访问login.domain.com时,不会发送cookie,从而不会产生会话信息。

0

它发生在我身上一次,也许你有类似的情况。会话变量是临时的,一旦它被输出到屏幕上,我会销毁它。

如果您正在路由所有内容,如果存在破损的图像,也可能重定向到您的php脚本,它会在后台打印出错误并销毁该会话变种。

只是一个念头!