【发布时间】:2012-12-14 20:15:40
【问题描述】:
我突然开始遇到我所见过的最奇怪的问题,除了我网站的主机之外什么都没有改变。我在代码中使用了很多 $_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>
不再有冲突的变量!我也从这次经历中学到了一些东西,并做了一些进一步的研究;变量和会话变量无论如何都不应该相同。这是一个很好的实践,我将在接下来的编程中开始使用它。
【问题讨论】: