我已经下载了这样的脚本:
$QUERY_STRING="login";
if (file_exists("passwd.dat") && $QUERY_STRING != ""):
require ("passwd.dat");
if (!isset($alogin) || md5($pass) != $Password[$alogin] || !isset($Password[$alogin])):
$logined = 0;
//$error = "Неверный логин или пароль!<br>";
setcookie("alogin","",0);
setcookie("pass","",0);
else:
$logined = 1;
setcookie("alogin",$alogin,time()+60*60*24*30*12);
setcookie("pass",$pass,time()+60*60*24*30*12);
endif;
endif;
?>
它在远程服务器上工作正常,但不适用于本地服务器。正如我所知,在远程机器上,$ _POST / $ _ COOKIE数组被“解包”到只有变量,例如如果$ _POST ['abc']已定义,您可以通过$ abc访问它。它是什么机制?只是不知道在哪里看......
答案 0 :(得分:5)
此设置称为register_globals
,您永远不应该使用。您应该修改脚本,以便它直接访问$_POST['abc']
,这是正确的方法。
如果脚本很长和/或很复杂,那么只需接受它是垃圾并发现更好的事实。
答案 1 :(得分:3)
这称为register_globals,自PHP 5.3.0起不推荐使用。