2015-01-24 2 views
-1
<html> 
<head> 
<body> 
<? 
if($mail == "yes"){ 
echo '<script>alert("hello")</script>'; 
} 
?> 
<a href="test.php?mail=yes">Click</a> 
</body> 
</head> 
</html> 

링크를 클릭 할 때 페이지에서 알림을 표시하지 않는 이유는 무엇입니까? PHP는 내가 전달하려고하는 변수를 인식합니까? 아니면 다른 것을해야합니까?URL을 통한 변수 전달 및 검사

+0

'$ mail'을 채우려면'register_globals'라고 불리는 PHP의 옛 제거 된 기능 (http://php.net/manual/en/security.globals.php)에 의존해야합니다. [$ _GET' 슈퍼 글로벌] (http://php.net/manual/en/reserved.variables.get.php) –

+0

에서 PHP의 첫 번째 줄에서'$ _GET [ 'mail']' $ mail을 참조하는데, 이것은 어디에도 설정되어 있지 않으므로 "yes"와 일치하지 않는 빈 문자열로 평가됩니다. 메일에 무엇이 들어 있는지 확인하기 전에'$ mail = $ _ GET [ 'mail']'을 설정해야한다. 또는 라인을 만드십시오. if ($ _GET [ 'mail'] == "yes")' – Loopo

답변

0

당신은 $ 메일이 (귀하의 경우 결코 후도하고) 당신이 그것을 확인하는 시간에 설정되지 않은

if($_GET['mail'] == 'yes') { 
... 
} 

를 확인해야하기 때문에. 문제는이 수집 자동 전역는 등의 URL이 $ _GET을 사용할 필요가

http://www.example.com?mail=whatever 

에있는 물음표 후 값을 검색합니다.

<html> 
<head> 
<body> 
<?php 
$mail = filter_input(INPUT_GET, 'mail'); 
if($mail == "yes"){ 
    echo '<script>alert("hello")</script>'; 
} 
?> 
<a href="teste.php?mail=yes">Click</a> 
</body> 
</head> 
</html> 
-1

당신은 GET 변수가 정의되어있는 경우 테스트해야하고 null가 아닌 배열 키로 사용하면 값을 URL로 전달할 수 있습니다.

0

모든 사용자의 URL 매개 변수가 단지 매개 변수 이름을 설정, $ _GET 배열에 배치이

if($_GET['mail'] == "yes"){ 
    echo '<script>alert("hello")</script>'; 
} 

을 시도해보십시오

관련 문제