IwanQ
@IwanQ
Плохие времена часто дают прекрасные возможности

Как производить проверку параметров GET?

Здравствуйте.

Есть файл news.php в который нужно передавать имя новости, которое берётся из БД.

Например: site.com/news?a=howtomakeit

Т.е. мы передаём всё в GET параметрах.

Я сделал такую проверку:

if (!empty($_GET['a'])){
require __DIR__ . '/php/db.php';
$stmt = $pdo->prepare('SELECT * FROM news WHERE url = ?');
$stmt->execute([$_GET['a']]);
} else {
  header('Location: 404.php');
}


Но понимаю, что этого не достаточно, потому что если мы допустим введём не существующий url site.com/news?a=fwuds, то редирект на страницу с ошибкой не будет работать.

Подскажите пожалуйста, как сделать такую проверку и вообще в целом какие нужно внести изменения.

Заранее спасибо.
  • Вопрос задан
  • 1303 просмотра
Решения вопроса 2
fwlone
@fwlone
^^
<?php
if (empty($_GET['a'])) header('Location: 404.php');

require __DIR__ . '/php/db.php';
$stmt = $pdo->prepare('SELECT * FROM news WHERE url = ?');
$stmt->execute([$_GET['a']]);

if (!$stmt) header('Location: 404.php');
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
$row = [];
if (!empty($_GET['a'])){
    require __DIR__ . '/php/db.php';
    $stmt = $pdo->prepare('SELECT * FROM news WHERE url = ?');
    $stmt->execute([$_GET['a']]);
    $row = $stmt->fetch();
}
if (!$row);
    header('Location: 404.php');
    exit;
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы