Проверка $ _GET - PullRequest
       4

Проверка $ _GET

0 голосов
/ 13 ноября 2009

Как мне проверить $ _GET, это число, поступающее из правильного источника.

Мой URL выглядит так: index.php? Page = items & catID = 5

Когда пользователи ставят что-то вроде 3, которого нет в catID. Я хочу, чтобы он отображал сообщение об ошибке.

$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";
    }

Это я до сих пор могу придумать, но она не работает, поскольку выдает ошибку msg даже на правильной странице.

Спасибо

Ответы [ 3 ]

0 голосов
/ 13 ноября 2009

Похоже, вы захотите использовать mysql_fetch_assoc (), а не mysql_fetch_array ().

0 голосов
/ 13 ноября 2009

wallk делает хорошее замечание, если оно отсутствует. но если я читаю это правильно, разве что-то в этом роде не будет тем, к чему вы стремитесь? Прямо сейчас строка:

if($catID) {

на самом деле только проверяет, является ли catID (или catID из $ _GET) ненулевым (не ложным). Полагаю, если вы хотите проверить, является ли catID возвращаемым из SQL ID категории?

$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 голосов
/ 13 ноября 2009

О, понятно. Первая строка внутри цикла while должна иметь «if»:

    while ($checkROW = mysql_fetch_array($checkSQL)) {
        if ($checkCAT != $checkROW["categoryID"])
            echo "err msg";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...