PHP:$\u POST/$\u COOKIE到变量

PHP:$\u POST/$\u COOKIE到变量,php,post,cookies,Php,Post,Cookies,我下载了这样的脚本: $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;

我下载了这样的脚本:

$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;
?>
$QUERY\u STRING=“login”;
如果(文件存在(“passwd.dat”)&&$QUERY\u STRING!=“”):
要求(“passwd.dat”);
如果(!isset($alogin)| | md5($pass)!=$Password[$alogin]| |!isset($Password[$alogin]):
$logined=0;
//$error=“аааааааа!”;
setcookie(“alogin”,0);
setcookie(“通过”,“0”);
其他:
$logined=1;
setcookie(“alogin”,$alogin,time()+60*60*24*30*12);
setcookie(“pass”、$pass、time()+60*60*24*30*12);
endif;
endif;
?>
它在远程服务器上运行良好,但在本地服务器上不起作用。我发现,在远程机器上,$\u POST/$\u COOKIE数组被“解包”为变量,例如,如果定义了$\u POST['abc'],则可以通过$abc访问它。它是什么机制?只是不知道去哪里看…

这个设置被调用,你永远不应该使用它。您应该修改脚本,使其直接访问
$\u POST['abc']
,这是正确的方法


如果脚本很长和/或很复杂,那么只需接受它是垃圾的事实,并找到一个更好的脚本。

这被调用,并且从PHP5.3.0开始被重新包装。

…此外:该功能从PHP5.3.0开始就被弃用,从PHP5.4.0开始被删除。有关更多信息,请参阅