我有一种“我发誓我没碰服务器”的情况。老实说,我没有碰过任何PHP脚本。我遇到的问题是php数据没有跨不同页面或页面刷新保存。我知道一个新的会话正在正确创建,因为我可以设置一个会话变量(例如$ _SESSION ['foo'] =“ foo”并将其打印回同一页就可以了。但是当我尝试使用相同的变量时在另一页上未设置!我可以在主机服务器上使用任何php函数或信息以查看发生了什么事吗?这是一个示例脚本,目前无法在主机服务器上运行:<?phpsession_start();if(isset($_SESSION['views'])) $_SESSION['views'] = $_SESSION['views']+ 1;else $_SESSION['views'] = 1;echo "views = ". $_SESSION['views'];echo '<p><a href="page1.php">Refresh</a></p>';?>页面刷新后,“ views”变量永远不会增加。我认为这对他们来说是个问题,但我想确保自己不是一个完全白痴。这是我的主机服务器(PHP版本4.4.7)的phpinfo():
4 回答
呼如林
TA贡献1798条经验 获得超3个赞
感谢您提供所有有用的信息。事实证明,我的主机更改了服务器并开始使用/ var / php_sessions以外的其他会话保存路径,该路径不再存在。一种解决方案是ini_set(' session.save_path','SOME WRITABLE PATH');
在我的所有脚本文件中声明,但这会很麻烦。我与主机进行了交谈,他们明确地将会话路径设置为确实存在的真实路径。希望这可以帮助遇到会话路径问题的任何人。
Helenr
TA贡献1780条经验 获得超4个赞
遇到了同样的问题-我发生的是我们的服务器管理员将session.cookie_secure布尔值更改为On,这意味着cookie仅通过安全连接发送。由于找不到cookie,因此php每次都会创建一个新会话,因此不会看到会话变量。
萧十郎
TA贡献1815条经验 获得超13个赞
使用phpinfo()
并检查session.*
设置。
也许信息存储在cookie中,而您的浏览器不接受cookie,诸如此类。
首先检查,然后返回结果。
您还可以执行以下操作 print_r($_SESSION);
以转储该变量并查看其内容...。
关于您phpinfo()
,是session.save_path
有效的吗?您的Web服务器是否对此目录具有写权限?
希望这可以帮助。
- 4 回答
- 0 关注
- 405 浏览
添加回答
举报
0/150
提交
取消