2012-08-10 1 views
0

가능한 중복 :
PHP: “Notice: Undefined variable” and “Notice: Undefined index”PHP는 공지 사항 : 정의되지 않은 인덱스 : C에서 로그인 : XAMPP htdocs를 index.php를 줄에 55

내가 무엇입니까 경고. 나는 그것을 돌보고 싶다. 문제의 코드는 다음과 같습니다

if ($_REQUEST['login']) $user = $_REQUEST['login']; 
elseif ($_COOKIE['user']) $user = $_COOKIE['user']; 

if ($_REQUEST['encpas']) $pass = $_REQUEST['encpas']; 
elseif ($_COOKIE['pass']) $pass = $_COOKIE['pass']; 

if ($_REQUEST['randsess']) $sess = $_REQUEST['randsess']; 
elseif ($_COOKIE['sess']) $sess= $_COOKIE['sess']; 

잘 모르겠습니다.

감사

+4

'$ _REQUEST [ 'login']'이 정의되지 않았습니다. 통지는 심지어 줄 번호를 제공합니다 – Don

+1

항상 색인을 가지고 그것을하기 전에 존재하는지 확인하십시오. – Matt

+0

또한 PHP 개발에 비교적 새로운 것으로 보이기 때문에 POST 또는 GET을 통해 매개 변수를 전달할 수있는 경우가 아니라면 $ _REQUEST superglobal을 사용하지 않는 것이 좋습니다. 나는 당신이 POST 로그인을 처리하려고하는 것을 상상할 것이다. 아마 $ _POST를 사용해야한다. 아마 사람들이 당신의 URL에 로그인 신임장을 추가하고 작동하게하고 싶지 않기를 바랄 것이다. –

답변

6

그들이 설정 한 경우 확인하려면 변수를 확인하고 값 또는하지 않은 :

if (isset($_REQUEST['login'])) { 
    $user = $_REQUEST['login']; 
} elseif (isset($_COOKIE['user'])) { 
    $user = $_COOKIE['user']; 
} 
0

array_key_exists 또는 isset을 사용해야합니다. 마지막은 일부 벤치 마크에 따라 더 빠릅니다.

if(isset($_REQUEST['login'])) { 
    $user = $_REQUEST['login']; 
} 

isset은 값으로 NULL을 계산하지 않습니다.

index.php?login=&otherstuff 

는 빈 값으로 로그인을 설정 : 다음 때문에

이주의하십시오. 그러나 그것은 설정 될 것입니다.

관련 문제