Как проверить, какой GET-запрос передан?

Как говорится в заголовке, как определить, какое значение GET было передано в URL-адресе?

Возьмите http://www.example.com/view.php?id=20в качестве примера. Текущее значение GET — «id» со значением 20. Это прекрасно работает, но если кто-то поиграет и изменит значение GET на что-то отличное от «id», я получу много ошибок PHP на странице.

Итак, моя цель - проверить, неверно ли переданное значение GET, чтобы я мог перенаправить их на другую страницу. Как мне это сделать?


person ndjsbj    schedule 18.01.2018    source источник
comment
Это именно то, что у меня было, но это все равно выдавало бы ошибку, потому что у меня был запрос на поиск идентификатора в базе данных за пределами этого оператора if, поэтому всякий раз, когда передавался другой запрос на получение, он не мог найти $_GET[ 'я бы']. Сейчас поменял, спасибо!   -  person ndjsbj    schedule 18.01.2018
comment
А как насчет того, чтобы поставить условие перед запросом?   -  person Carl Binalla    schedule 18.01.2018
comment
@Waqas, который отличается от этого, однако он такой же, как stackoverflow.com/questions/12019684/   -  person Cemal    schedule 18.01.2018


Ответы (1)


Вы должны проверить параметры URL. В вашем случае это должно быть id, а это должно быть numeric:

if (isset($_GET['id']) && is_numeric($_GET['id']))

В качестве предварительной проверки вы можете проверить, является ли id целым числом или нет:

if((int)$_GET['id'] == $_GET['id']){
    return TRUE;            
} else {        
    return FALSE; // It's a number, but not an integer
}
person Milan Chheda    schedule 18.01.2018