@kamtm

Как выдавать ошибку 404 при подстановке лишних параметров в URL на php?

Добрый день!

Задача: перенести сайт написанный на php4 с сохранением старых URL на страницы, написанные на php5.

Проблема: URL выглядят как:
/index.php?module=subjects&func=viewpage&pageid=72,
/modules.php?op=modload&name=News&file=article&sid=179

Решение:

function proverka($req) {
if (!isset($req)) { return; }
$req = htmlentities($req);
return $req;
}
$module = proverka($_GET['module']);
$func = proverka($_GET['func']);
$pageid = intval(proverka($_GET['pageid']));
if (($module == 'subjects') && ($func == 'viewpage') && ($pageid)) {
if (!@include 'pages/file'.$pageid.'.php') {
echo 'Ошибка 404
Файл не найден.';
}
}

Такое решение работает и открывает страницу /index.php?module=subjects&func=viewpage&pageid=72, но если ввести: /index.php?module=subjects&func=viewpage&pageid=72&t=qawe, то также будет загружена страница /index.php?module=subjects&func=viewpage&pageid=72

Вопрос: каким образом можно выдавать ошибку 404 при попытке подставить лишний параметр в URL?
  • Вопрос задан
  • 2799 просмотров
Решения вопроса 1
EnChikiben
@EnChikiben
Проверять на размер и приветствие только тех параметров которые вам нужны
if ( count($_GET) > 3 ) echo 'Ошибка 404 не найден.';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы