@ivasenkoartem

Как сделать редирект если запись в БД не находится?

Как сделать редирект если нет записи в БД? Пример ниже, не работает функция header(). Как можно обойти? Надо чтобы была проверка и при отсутствии записи в бд, должен произойти переход на нужную страницу.

<?php 
if(!isset($_GET['id'])) {
header('Location: catalog');
}
include 'admin/functions/database_project.php'; 
$projects = getProjects($_GET['id']); 
$title = $projects['name']." | KINGWOOD ";
include "header_two.php"; 

if (!isset($projects['id'])) {
  header('Location: catalog');
}

?>
  • Вопрос задан
  • 108 просмотров
Пригласить эксперта
Ответы на вопрос 2
romanko_vn
@romanko_vn
Так может надо как то так

header('Location: catalog/');
// или
header('Location: catalog.php');
// или
header('Location: catalog.html');
Ответ написан
Комментировать
@SomethingWrong
us3.php.net/manual/ru/function.header.php

//header('Location: http://www.example.com/');
//header('Location: script.php');
//header('Location: script.php', true, 302);
//header('Location: script.php', true, 301);

<?php
$redirect_url = 'catalog'; // url: http://www.example.com/catalog

if(empty($_GET['id']) || !is_numeric($_GET['id'])) {
//id проекта не передан, или не число, редирект, и прекращение выполнения
   header("Location: {$redirect_url}"); 
   exit;     
}

include 'admin/functions/database_project.php'; 
$projects = getProjects($_GET['id']); 

if(empty($projects['id'])) {
// Этот редирект сработает, только если в файле database_project.php 
//не отрисовывался html, не вызывался print, или echo 
   header("Location: {$redirect_url}"); 
   exit;     
}

$title = $projects['name']." | KINGWOOD ";
include "header_two.php";


Если же в файле database_project.php производится хоть какой-то вывод, header не сработает.
В этом случае код, связанный с получением данных, должен выполняться с буферизацией.
Также обратите внимание, что вызов проверки на существование полученных данных происходит до того, как подключаются какие-либо дальнейшие обработчики.

php.net/manual/ru/function.ob-start.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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