【问题标题】:php session and other variable bug, it is normal?php session等变量bug,正常吗?
【发布时间】:2014-03-21 11:50:46
【问题描述】:
session_start();
$_SESSION["somevariable"] = "blablabla";
print $_SESSION["somevariable"]."<br>";
$somevariable = "some bug";
print $_SESSION["somevariable"]."<br>"; 

output:
blablabla
some bug

我创建了一些会话变量 ($_session["data"]),然后创建了一些典型变量 ($data),然后覆盖了 $_session 变量。 我们的服务器php版本是5.2.5,Zend Engine v2.2.0 对不起我的英语,谢谢你的帮助

【问题讨论】:

  • 你有 3 个选项 1. 设置 register_globals 关闭,2. 如果你不能再更换服务器或 3. 以后会遇到很多麻烦。
  • 我们的服务器已经更新为 windows 2008 R2.. 未来,然后我配置 apache/php 服务器并设置全局注册,谢谢

标签: php session variables


【解决方案1】:

你有register globals turned on。这会导致$somevariable 的声明覆盖$_SESSION['somevariable'],因为它们指向同一个地方。

您应该关闭它,因为它已被弃用,并且可能会导致您遇到的问题。

【讨论】:

    【解决方案2】:

    About superglobals。正是这一行:

    If the deprecated register_globals directive is set to on then the variables 
    within will also be made available in the global scope of the script. 
    For example, $_POST['foo'] would also exist as $foo.
    

    【讨论】:

      【解决方案3】:

      在这里查看codeviper

      您可以像正常变量值更改一样随时更改或更新会话值,但在这种情况下您不能因为它阻止您的结果被覆盖。 Global php variable securrity ON`背后的原因。

      例如$_SESSION['item'] 等同于$item

      你可以设置修改php.ini文件:

      session.bug_compat_42 = On
      

      修改为:

      session.bug_compat_42 = Off
      

      希望对您有所帮助!

      【讨论】:

      • 欢迎您...我对您有帮助,但仍然有人给我减分。任何地方... :)
      【解决方案4】:

      您将数据过度写入变量,会话将保持不变,直到页面中的内容被强制写入为止。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-28
        • 2012-06-11
        • 2016-06-06
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        相关资源
        最近更新 更多