【问题标题】:session variable value changed会话变量值已更改
【发布时间】:2012-08-12 13:54:40
【问题描述】:

我正在使用 session 将一些数据存储在我的 php 网站中,但是在某些页面中,当我获取 session 中的数据时,它有时会发生变化,有时是相同的。 我搜索了很多并在

找到了一些答案

session id value changes

" 如果您启用了注册全局变量,那么如果您在代码中使用变量 $id,您可能会看到类似的行为。作为测试,请尝试:

<?php
session_start();
$_SESSION['testing'] = 'Foo';
$testing = 'bar';
die($_SESSION['testing']);
?> 

"

帮助我,我在我的 php 文件中进行了搜索,但我没有找到类似的变量,如会话变量,那么问题是什么? 给我一些关于 php session 的细节,如果可能的话推荐好书。

已编辑:

我已经设置了 php.ini,因为你们都说它的 register_global 问题关闭,然后使用 phpinfo(); 函数检查并检查 register_global 是否关闭。 但是一段时间后,我使用我的 ID 登录,而不是在我访问的 mypage menu.php 之后,它更改了会话记录 ID,并且我自动登录了另一个帐户。 请帮帮我

【问题讨论】:

    标签: php session


    【解决方案1】:

    通过在 php.ini 文件中添加以下行来禁用 Register_Globals 可能会解决此问题。

    register_globals = Off

    如果您使用共享虚拟主机服务,请遵循:

    • 如果您有权访问 /cgi-bin 文件夹,请在其中创建自定义 php.ini 文件。
    • 如果您没有访问权限,则在根文件夹中创建您的自定义 php.ini 文件。

    然后在 php.ini 文件中添加上述行。

    在您的 .htaccess 文件中添加以下代码行也可以解决您的问题。

    php_flag register_globals off

    【讨论】:

    • 我可以在所有目录中添加 php.ini 吗?
    • 我已经上传到 /cgi-bin 文件夹了......是否需要添加到 public_html 的其他文件夹中????
    • 您只需要一个自定义的 php.ini 文件。如果您的网络服务器支持 htaccess 文件,那么最好的解决方案是使用 .htaccess 文件。
    • webserver 支持 htaccess,但是当我关闭 php_flag register_globals 时,它会出现内部服务器错误
    • @Mehuldabhi 检查您的 php 版本并阅读 this article 如果您仍然收到 500 - 内部服务器错误,请联系您的服务提供商...
    【解决方案2】:

    您不应该使用寄存器全局变量,所以这应该不是问题。

    如果您正在运行注册全局变量,请将此行添加到 .htaccess 以禁用:

    php_flag register_globals off
    

    它不能在运行时使用 ini_set() 完成,因此您需要像之前的答案一样使用 htaccess 或 php.ini。

    【讨论】:

      【解决方案3】:

      如今,register_globals 不太可能是您的问题。更有可能与 a) 实际会话数据的存储位置有关; b) “会话 ID”如何从一个请求传输到下一个请求。

      首先要查看的是session_save_path(),它告诉 PHP 在磁盘上的哪个位置存储您放入会话变量中的数据。

      另一部分稍微复杂一些,但是关于如何设置 cookie 让 PHP 知道加载相同的会话而不是创建一个新会话。您可能需要查看此 cookie 的生命周期或它适用的范围(域/子域/URL 路径)之类的东西。看看session_set_cookie_params(),并且通常通读 PHP 手册的该部分以了解会话是如何工作的。

      【讨论】:

        猜你喜欢
        • 2016-04-04
        • 1970-01-01
        • 2015-09-30
        • 1970-01-01
        • 2016-08-29
        • 2016-09-16
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多