2009-11-13 3 views
0

올바른 소스에서 오는 숫자 인 $ _GET의 유효성을 검사하려면 어떻게해야합니까?

내 URL 모양 같은 : index.php를 페이지 = 항목 & CATID = 사용자가 CATID에 존재하지 않는 3 같은 것을 넣어 5

. 오류 메시지를 표시하고 싶습니다.

$catID = intval($_GET["catID"]); 

if($catID) { 
    $checkSQL = mysql_query("SELECT * FROM category WHERE category_type='2'"); 
    while($checkROW = mysql_fetch_array($checkSQL)) { 
    $checkCAT != $checkROW["categoryID"]; 
    echo "err msg"; 
    } 

나는 지금까지 올 수 있지만 정확한 페이지에서도 오류 메시지를 발생 시키므로 작동하지 않습니다.

감사합니다.

+0

무엇이 오류 메시지입니까? $ catID에는 어떤 종류의 값이 있습니까? – wallyk

+0

$ catID에 5, 6, 7과 같은 정수가 포함되어 있습니다. –

답변

0

wallk는 좋은 지적입니다. 누락 된 경우가 있습니다. 하지만이 글을 정확하게 읽으면,이 라인을 따라 무언가가 더 많은 것을하지 않을까요? 현재 라인 :합니다 ($ _GET이나, CATID) CATID가 아닌 제로 (안 false)를 경우

if($catID) { 

사실 만 확인하고 있습니다. 내 생각 엔 catID가 SQL에서 반환 된 categoryID인지 확인하려고한다면?

$catID = intval($_GET["catID"]); 

checkcat($catID); 

function checkcat($check_category) { 
    $checkSQL = mysql_query("SELECT * FROM category WHERE category_type='2'"); 
    while($checkROW = mysql_fetch_array($checkSQL)) { 
     if ($check_category != $checkROW["categoryID"]) { 
      echo "err msg"; 
     } else { 
      echo "not an error message"; 
     } 
    } 
} 

당신이 찾고있는 것에 대해 자세히 설명해주십시오.

$catID = ($_GET["catID"); 

if (!is_numeric($catID)) { 
    echo "Not a numeric category!" 
} else { 
    $checkSQLQuery = "SELECT * FROM category WHERE categoryID = '{$catID}' AND category_type='2'" 
    $resultSQL = mysql_query($checkSQLQuery, $db); 
    /* NOTE!: Guessing on what your database resouce 
    pointer is - it isn't included in the origin snippet. 
    Although, the last opened should be used by default if 
    this is left out. */ 
    if (mysql_num_rows($resultSQL) < 1) { 
     echo "Error message, category ID not found" 
    } else { 
     echo "Found it!" 
    } 
} 
+0

올바른 catID에도 오류 메시지 "오류 메시지"가 생성됩니다. 오류 메시지가 표시되지 않아야합니다. 오류 메시지가 올바르지 않은 페이지에서 3 번 생성되었습니다. –

+0

당신은 그 자신의 SQL 쿼리를 실행할 수 있고 출력을 게시 할 수 있습니까? 아마도 거기에 우리가 놓치고있는 것이 있습니다. 여러 항목을 반환합니까? –

+0

내 url은 다음과 같습니다 : index.php? page = items & catID = 5 사용자가 catID에 존재하지 않는 3을 넣을 때. 오류 메시지를 표시하고 싶습니다. –

0

오, 알 수 있습니다. 오히려로 MYSQL_ASSOC 이상())는 mysql_fetch_assoc를 (사용하고자 할 것처럼 보이는

 
    while ($checkROW = mysql_fetch_array($checkSQL)) { 
     if ($checkCAT != $checkROW["categoryID"]) 
      echo "err msg"; 
+0

코드를 붙여 넣기가 잘못되었습니다. 원래 코드에 IF가 있습니다. 그러나 그것은 작동하지 않습니다. –

0

: while 루프 내부의 첫 번째 줄은 "만일"이 있어야합니다.

관련 문제