2014-02-28 3 views
0

URL 매개 변수를 가져 와서 페이지에 표시 할 정보를 결정하려고하지만 정보가 잘못 읽혀지고 있습니다. 내가 할 첫 번째 것은 아래의 매개 변수를 확인하고 $ 페이지에 할당입니다PHP get 매개 변수가 잘못된 값을 가져옵니다.

<?php 
if(isset($_GET["page"])) { 
    $page=$_GET["page"]; 
} 
?> 

은 $ 페이지는 몇 가지 이유를 들어 2 또는 3 같은 경우는 내가 $ 페이지를 에코 만약 내가 다음, 확인, I 매개 변수의 적절한 값을 가져 오지만 잘못된 정보를 표시합니다. 심지어 $ 페이지 3 반환하지만 어떤 이유

<?php 
if(isset($page) == '2') { ?> 


DISPLAY INFO A 
ECHO $PAGE RETURNS 2 

<?php } elseif(isset($page) == '3') { ?> 

DISPLAY INFO B 
ECHO $PAGE RETURNS 3 

<?php } else { something here } ?> 

, 내가 잘못된 매개 변수를 잡아 당겨 2 페이지 암에 표시해야하는데 정보가 나타난다? URL은 다음과 같습니다

feed.php?page=3 

답변

1

PHP isset 함수 반환 Boolean. 당신은 코드를 변경해야합니다 :/A TRUE FALSE

<?php 
if(isset($page) && $page== '2') { 
?> 
DISPLAY INFO A 
ECHO $PAGE RETURNS 2 
<?php } elseif(isset($page) && $page== '3') { ?> 
DISPLAY INFO B 
ECHO $PAGE RETURNS 3 
<?php } else { something here } ?> 
0

이 잘못 :

if(isset($page) == '2') { 

그것은

if($page == '2') { 

이 만 페이지 1에서 제대로 작동 할 수 있어야 isset($page) 반환 true 때문에 어떤 진실은 1으로 변환됩니다. isset() 기능은 변수가 설정되었는지 확인 여부를

0
if($page == '3') 

isset() 만입니까? 당신이 이미 그것을 할당 할 때. 어쩌면이뿐만 아니라 :

if(isset($_GET["page"])) { 
    $page = $_GET["page"]; 
} else { 
    $page = '0'; // or something 
} 
0

isset() 복귀, 아직 정상 정수에 대해 그것을 비교하고 있습니다. mysql의 부울 TRUE은 정수 1과 동일하지만 나머지 테스트는 실패합니다. 당신은 가지고 있어야합니다 :

if (isset($_GET['page'])) { 
    if ($_GET['page'] == 1) { ... 1 stuff } 
    else if ($_GET['page'] == 2) { ... 2 stuff } 
}