我想知道如何关闭单个php文件的register_globals?就像是否有任何代码能够关闭配置文件中的register_globals功能?
答案 0 :(得分:2)
如果您使用PHP作为Apache模块,您可以将指令放在.htaccess文件(或httpd.conf)中,仅限于您想要的文件:
<FilesMatch "^foo\.php$">
php_flag register_globals off
</FilesMatch>
其他SAPI还有其他机制。 CGI / FPM可以使用每个目录的php.ini。
但是,不能在PHP脚本中禁用该选项(在运行时)。
答案 1 :(得分:0)
不可能在PHP脚本本身中这样做。执行第一行时,已经创建了全局变量。你唯一能做的就是在做其他事情之前取消它们:
foreach($_REQUEST as $var => $value) { unset($GLOBALS[$var]); }
但是,如果你的ISP启用了register_globals,甚至不允许你使用.htaccess,你最好还是寻找一个新的。