我正在使用session来存储我的php网站中的一些数据,但是在某些页面中,当我在会话中获取数据时,有些时候会更改,有些时候会相同。 我搜索了很多并在
找到答案"如果你有注册全局变量,如果你在代码中使用变量$ id,你可能会看到这样的行为。作为测试,请尝试:
<?php
session_start();
$_SESSION['testing'] = 'Foo';
$testing = 'bar';
die($_SESSION['testing']);
?>
&#34;
帮助我在我的php文件中搜索但我没有找到类似会话变量的变量,那么问题是什么? 给我一些关于php会话的细节,如果可能的话,建议好书。
已编辑:
我已经将php.ini设置为所有人说使用phpinfo();
函数关闭register_global而不是ckeck,并检查register_global
是否已关闭。
但是过了一段时间后我用我的id和mypage menu.php登录后,我改变了会话记录的id并且我自动登录了另一个帐户。
请帮帮我
答案 0 :(得分:1)
通过在php.ini文件中添加以下行来禁用Register_Globals可能会解决此问题。
register_globals = Off
如果您使用的是共享虚拟主机服务,请按照:
然后在php.ini文件中添加上面提到的行。
在.htaccess
文件中添加以下代码行也可以解决您的问题。
php_flag register_globals off
答案 1 :(得分:0)
您不应该使用注册全局变量,因此它不应该是一个问题。
如果您运行了注册全局变量,请将此行添加到.htaccess以禁用:
php_flag register_globals off
在运行时无法使用ini_set(),因此您需要使用htaccess或php.ini,如前面的答案所示。
答案 2 :(得分:0)
现在不太可能register_globals是你的问题。更可能的是,它与a)存储实际会话数据的位置有关; b)“会话ID”如何从一个请求传输到下一个请求。
首先要看的是session_save_path(),它告诉PHP在磁盘上哪里存储你放入会话变量的数据。
另一部分有点复杂,但是关于如何设置cookie,让PHP知道加载相同的会话而不是创建一个新的会话。您可能需要查看此cookie的生命周期或它适用的范围(域/子域/ URL路径)。看看session_set_cookie_params(),通常会阅读PHP手册的这一部分,以了解会话的工作方式。