Bri*_*ica 6 php variables session
我突然开始遇到我见过的最奇怪的问题,除了我网站的主机之外没有任何改变.我在我的代码中使用了许多$ _SESSION变量,这些变量可能与普通变量同名,但设置普通变量似乎正在改变具有相同名称的$ _SESSION变量.
例如,如果我这样做
$_SESSION['favcolor'] = 'blue';
$favcolor = 'green';
echo $_SESSION['favcolor'];
Run Code Online (Sandbox Code Playgroud)
我得到green了回应......我怎么不让这件事发生?我认为最有可能必须更改一些PHP ini变量,但我似乎无法在此找到任何内容......
解
因为我在不同的主机上托管我的网站,所以我必须按照以下方式进行操作.我创建了一个php.ini文件并将其放在我网站文件的根目录中,其中只包含以下行:
register_globals = Off ;notice the capital 'O' in 'Off'
Run Code Online (Sandbox Code Playgroud)
然后在我的.htaccess文件中,我将其添加到文件的末尾:
<IfModule mod_suphp.c>
suPHP_ConfigPath /home/myhostusername/public_html/stumpyinc.com
<Files php.ini>
order allow,deny
deny from all
</Files>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
没有更多相互矛盾的变量!我也从这次经历中学到了一些东西并做了一些进一步的研究; 变量和会话变量不应该是相同的.这是一个很好的做法,我将在我的其余编程中开始使用.
看起来像是register_globals打开了.这会导致你遇到的冲突.您的主机可能在配置服务器时忘记关闭它们.一旦他们这样做,你的问题就会消失.
如果他们拒绝关闭它,请找一个新的主机.不仅应该register_globals关闭它们,而且它们已被弃用,并将在下一版本的PHP中删除.
| 归档时间: |
|
| 查看次数: |
685 次 |
| 最近记录: |