gpt4 book ai didi

PHP 设置普通变量更改 session 变量

转载 作者:可可西里 更新时间:2023-11-01 13:16:23 24 4
gpt4 key购买 nike

我突然开始遇到我见过的最奇怪的问题,除了我的网站主机之外,没有任何改变。我在我的代码中使用了很多可能与普通变量同名的 $_SESSION 变量,但是设置普通变量似乎是在更改同名的 $_SESSION 变量。

例如,如果我这样做

$_SESSION['favcolor'] = 'blue';
$favcolor = 'green';
echo $_SESSION['favcolor'];

我得到 green 作为响应...我如何才能不让这种情况发生?我认为很可能有一些必须更改的 PHP ini 变量,但我似乎找不到任何关于此的内容......


解决方案

因此,由于我在不同的主机上托管我的网站,因此我必须按以下方式进行。我创建了一个 php.ini 文件并将其放在我网站文件的根目录中,其中只有以下行:

register_globals = Off ;notice the capital 'O' in 'Off'

然后在我的 .htaccess 文件中,我将其添加到文件末尾:

<IfModule mod_suphp.c>
suPHP_ConfigPath /home/myhostusername/public_html/stumpyinc.com
<Files php.ini>
order allow,deny
deny from all
</Files>
</IfModule>

不再有冲突的变量!我也从这次经历中学到了一些东西,并做了一些进一步的研究;变量和 session 变量无论如何都不应该相同。这是一个很好的做法,我将在我的其余编程中开始使用它。

最佳答案

看起来像register_globals已开启。这将导致您正在经历的冲突。您的主机可能在配置服务器时忘记关闭它们。一旦他们这样做,您的问题就会消失。

如果他们拒绝关闭它,请寻找新的主机。 register_globals 不仅应该被关闭,而且它们已经被弃用,并将在下一版本的 PHP 中被删除。

关于PHP 设置普通变量更改 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088575/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com