2012-03-27 2 views
2
나는 그런 스크립트를 다운로드 한

에 COOKIE :

$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를 통해 액세스 할 수 있습니다. 어떤 메커니즘입니까? 어디서 봐야할지 모르겠다.

답변

5

이 설정은 register_globals으로 지정해야합니다. 결코이라고해서는 안됩니다. 대신 올바른 방법 인 $_POST['abc']에 직접 액세스하도록 스크립트를 수정해야합니다.

스크립트가 길거나 복잡한 경우 간단히 허위 사실을 받아들이고 더 나은 스크립트를 찾으십시오.

+0

... 또한이 기능은 PHP 5.3.0부터는 사용이 권장되지 않았으며 PHP 5.4.0부터는 제거되었습니다. – acme

+0

자세한 내용은 http://stackoverflow.com/questions/1417373/why-is-register-globals-so-bad를 참조하십시오. –