header( 'Location: ...'); перенаправление на страницу

Wikly

Новичок
Доброго всем времени суток...
Такая ситуёвина:

есть такой код:

PHP:
<?php
$koren = $_SERVER['DOCUMENT_ROOT'];
 require $koren.'/adminka/include/config.php';
 require $koren.'/include/functions.php';    
 session_start();
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title</title>
<link href="style.css" rel="stylesheet" type="text/css" /></head>
<body>
...
Вызов функции с перенаправлением..
...
В подключаемом файле require $koren.'/include/functions.php'; есть некоторые функции после выполнения которых необходимо перенаправить пользователя на определенную страницу, но при вызове этой функции выпадает ошибка: "Warning: Cannot modify header information - headers already sent by". Ругается на эту строку: <link href="style.css" rel="stylesheet" type="text/css" /></head>. В принципе понимаю что это за ошибка. Но ведь файл с функциями находится до всякого вывода на экран...

Подскажите поэалуйста, как решить такую проблему?..

Заранее спасибо......
 

Wikly

Новичок
Благодарю за подсказку...

Но решил проблему перенаправлением не через php header, а через html
PHP:
<meta http-equiv="refresh" content="15; url=http:/........1.php/">
 

Фанат

oncle terrible
Команда форума
не переживай, ты не один такой.
тысячи говнокодеров делают то же самое
 

Фанат

oncle terrible
Команда форума
Непонятно, почему это нельзя было сделать сейчас.
тем более, что это далеко не первая проблема, которая вылезет у тебя из-за кривой архитектуры.
 

Wikly

Новичок
просто с шаблонами как то не очень понятно... уменя так получается, что вызов функции происходит после этой кучи php...
 

Фанат

oncle terrible
Команда форума
вот этого и не должно быть. вывод должен начинаться после вызова всех функций.
 

Wikly

Новичок
Ну это то я понимаю... а как это сделать на практике - не очень...
 

Фанат

oncle terrible
Команда форума
там же пример приведён.
весь вывод уходит в два шаблона - основной и конкретной страницы.
скрипт сначала отрабатывает, а потом вызывает основной шаблон.
 

Wikly

Новичок
после третьего раза прочтения, примерно понятно... спасибо. буду разбираться...
Только вот сайт почти готов на "кривой архитектуре". Придется переписать на шаблонную. :)
 

Wikly

Новичок
там же пример приведён.
весь вывод уходит в два шаблона - основной и конкретной страницы.
скрипт сначала отрабатывает, а потом вызывает основной шаблон.
И правда с шаблонами поинтереснее работать... Пол ночи ковырялся, но всё таки разобрался...
Спасибо!
 

Фанат

oncle terrible
Команда форума
Кроме перенаправления, шаблон помогает решить множество других проблем.
Во-первых, проблемы, также связанные с НТТР заголовками - установка кук, сессии и прочее.
Во-вторых, проблемы связанные с логикой приложения. В каких-то случаях может понадобиться другой вывод (например, в другом дизайне), или вообще без дизайна - если скрипт должен вернуть только данные для AJAX. Или, при возникновении ошибки, стандартный вывод не должен начинаться вовсе, а должно показываться дружественное сообщение об ошибке.
В-третьих, что тоже очень важно - использование шаблонов позволяет менять шапку сайта в зависимости от выводимой страницы - то, что при твоем старом подходе невозможно было в принципе, даже несчастный <title> страницы поменять нельзя было. Сейчас же это элементарно.

Вообще, разделение кода на получение и отображение данных - это из разряда азбучных истин, таблицы умножения в РНР. Ну. в нормальном современном РНР, а не в том чудовищном говнокодище из прошлого века, которым забиты все обучающие пособия.
 

Wikly

Новичок
Ну так то да. С шаблонами решаются многие задачи.. К тому же и дизайн можно изменить не затрагивая код скрипта.. В общем - хорошая штука!
 
Сверху