2011-11-30 68 views
1

检查遍布网络,并尝试所有可能的解决方案写在会议上的问题。每一个php页面创建自己的会话

我有3页:第1页从重定向的形式读取一些数据并在会话中存储4个变量。这里是第一个会话ID生成,如果我检查print_r($ _ SESSION)一切正常。

表格从此页面提交到第二页,其中数据存储在mysql数据库(这里没有会话操作),然后“meta”重定向到第3页。

在这里,我尝试从会话中读取变量,而是生成一个新的会话。 如果我看看我的服务器tmp目录,这两个会话都在这里。

为什么生成新的会话而不是从第一个会话读取?

  • 试图页面编码:ANSI,UTF-8瓦特BOM,UTF-8 WO BOM
  • 试图脚本写在php.net会话手册

任何其他的想法?


代码是简单的会话是这样的:

1 PHP

session_start(); 
$_SESSION['id'] = $id; 

第2页试图

session_start(); 
print_r($_SESSION); 

输出Array{ id -> }所以只有空瓦里能够

第3页

session_start(); 
$id = $_SESSION['id']; 
echo $id; 

和输出是 ''

+1

发布您的代码。我们不能盲目! – Polynomial

+4

检查会话cookie是否传播正常,并在每个页面请求之间保持不变。如果Cookie中的会话ID发生更改,则每次都会收到新会话。同样,确保所有页面都在执行session_start()。 –

+2

如果第2页上的“没有会话操作”意味着你没有调用'session_start()' - 那就是你的问题。 – Narf

回答

1

看起来你设置$ _SESSION [ '身份证']空与

$_SESSION['id'] = $id; 

事业的$ id在脚本中是空的。删除这一行。

+0

这不是。在我的真实代码中,我将14个变量放在会话中,全部都是空的,id不是会话标识,而是从用户读取的一些产品标识。尝试了一些其他服务器上的确切代码,一切都很好。此服务器不报告任何错误jst不起作用。这里测试了一些其他的代码只有2页,代码的作品。 – slejnej

0

我有同样的问题一段时间,很难搞清楚。我的问题是,我的网站工作了一段时间,会议正常工作,然后所有的突然一切都爆发了。

显然,你的session_save_path()对我来说是/ var/lib/php5 /,需要有777个chmod权限。我意外地改变了它,彻底打破了会议。

要修复,只需在linux上执行sudo chmod -R 777 /var/lib/php5/(或任何你的session_save_path())。

但会议的问题是非常奇怪的,可能是由无数的原因造成的...