@DragonPro

Как перенаправлять на 404?

Добрый день, не могу решить проблему с перенаправлением людей на 404, если такого url нет, имеется динамический php под названием cars.php, из базы данных берутся все столбцы и столбец name_url, если в этом столбце данные совпадают с url, на котором находится клиент, то выводятся данные, например, name, title, price и т.д., но, если клиент ввел рандомный url, то выводится попросту пустой шаблон cars.php без каких-либо данных и ошибок, как выловить этот момент, чтобы этот рандомный url переадресовывал на my_404.php?

С таким кодом в любом случае я попадаю на my_404.php,:
function get_car_url($url) {
  global $dbh;
  if ($dbh->prepare("SELECT * FROM `cars` WHERE `name_url` != '$url'")) {
    http_response_code(404);
    include('my_404.php');
    die();
  }
  else {
    $cars = $dbh->prepare("SELECT * FROM `cars` WHERE `name_url` = '$url'");
    $cars->execute();
    foreach ($cars as $car) {
      return $car;
    }
  }
}
  • Вопрос задан
  • 142 просмотра
Решения вопроса 1
@Kostik_1993
Web Developer
function get_car_url($url) {
  global $dbh;
  $query = $dbh->prepare("SELECT * FROM `cars` WHERE `name_url` = ?");
  $query->execute([$url]);
$car = $query->fetch(PDO::FETCH_ASSOC);
  if (!isset($car['id'])) {
    http_response_code(404);
    include('my_404.php');
    die();
  }
  return $car;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
toxa82
@toxa82
Если вам нужно сделать редирект то вы должны отправить заголовок "Location: /url"
Ответ написан
Комментировать
@DragonPro Автор вопроса
Константин Б. помог с вопросом, если кому нужно будет, то данный код - решение:
function get_car_url($url) {
  global $dbh;
  $cars = $dbh->prepare("SELECT * FROM `cars` WHERE `name_url` = '$url'");
  $cars->execute();
  foreach ($cars as $car) {
    return $car;
  }
  if ($url <> $car["name_url"]) {
    http_response_code(404);
    include('my_404.php');
    die();
  }
}
Ответ написан
Ваш ответ на вопрос

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

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