Я начинающий php-разработчик. У меня возникла проблема с выскакивающей ошибкой headers already sent. Проблему я, грубо говоря, "решил" - я вставил этот же код в аналогичный файл (подключение к БД) в другом своем проекте для проверки и убрал от туда все комментарии и лишние дробления php-кода. Это сработало. Однако в исходном проекте с точно таким же кодом это не работает, ошибка ни куда не исчезла.
Помогите пожалуйста! Между двумя файлами (исходном и проверочном) разницы нет абсолютно никакой кроме имени БД, однако в проверочном всё работает нормально, а в исходном нет.
Вот исходный код:
<!-- План:
1. Подключаемся к БД (стр. 16)
2. Открываем сессию (стр. 20)
3. Создаем функцию для перенаправления на другую страницу (не обязательно) (стр. 24) -->
<!-- Используемые переменные:
1. $link - переменная подключения к БД
2. $refresh - принимаемое значение функции refresh, куда вводится ссылка на файл, в который мы переходим при выполнении функции -->
<!-- Используемые функции:
1. mysqli_connection - базовая функция, в значения которой вписываются сервер, имя пользователя, пароль и имя БД. Эта функция используется 1 раз на весь сайт и внесена в переменную $link
2. session_start - функция, открывающая сессию
3. function refresh - нами созданная функция с принимаемым значением в виде ссылки на файл, на который нам нужно перейти -->
<?php
$link = mysqli_connect('localhost', 'root', '', 'bd'); // Шаг 1: подключаемся к БД с помощью функции mysqli_connection. В скобках указываем сервер, имя пользователя, пароль, имя БД.
?>
<?php
session_start(); // Шаг 2: создаем сессию. Это нужно для того, чтобы авторизованный пользователь был авторизован на всех страницах
?>
<?php
function refresh($refresh) { // Шаг 3: создаем функцию для перенаправления на др. страницу для того, чтобы потом не переписывать meta-тег по 100 раз. Вместо $refresh на других страницах писать ссылку на нужный файл
?>
<meta http-equiv="refresh" content="1; URL=<?php $refresh ?>">
<?php
}
?>
И вот то, что получается:
<?php
$link = mysqli_connect('localhost', 'root', '', 'bd');
session_start();
function refresh($refresh) {
?>
<meta http-equiv="refresh" content="1; URL=<?php $refresh ?>">
<?php
}
?>
UPD: Я убрал комментарии и дробление php-блоков во всех файлах этого проекта, и ошибка пропала... Но ведь это не решение? До этого в других проектах я дробил код для того, чтобы он был более читабельным, и оставлял комментарии.