@lemonlimelike

Не получается сделать редирект?

Вот код:
?php
require_once "includes/config.php";
if (isset($_POST['search'])) {
header('Location: /search.php');
    $word = mysqli_real_escape_string($connection, $_POST['search']);
    $result = mysqli_query($connection, "SELECT * FROM videos WHERE title LIKE '%$word%'");
    $end_result = '';

    $ter = array();
    while($row = mysqli_fetch_array($result)){
      $ter[] = $row;
    } 
}
?>

Выдает ошибку ссылаясь на config.php Cannot modify header information - headers already sent by (output started at /home/..../www.site.ru/includes/config.php:1) in
Вот config
<?php
	$config = array(
	"title"=> site.ru",
	"db" => array(
		"server" => "localhost",
		"username" => "username",
		"password" => "password",
		"name" =>"name")
	);
require_once "db.php";
  • Вопрос задан
  • 163 просмотра
Решения вопроса 1
Попробуйте сначала проверить if (isset($_POST['search'])), а потом require_once "includes/config.php"
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Batlab
PHP Senior | Python Middle | JS Junior
Скорее всего, где-то до использования редиректа вы вывели echo, что изменило заголовки
Ответ написан
Комментировать
XXXXPro
@XXXXPro
Fullstack Web developer
Скорее всего, config.php сохранен в текстовом редакторе, который добавляет символ BOM в начало файла. Тогда надо в настройках редактора это отключить и пересохранить файл заново.
Еще вариант — добавить в начало скрипта (до require) вызов функции ob_start для буферизации выводимых данных, это может серьезно облегчить жизнь в дальнейшем.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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