Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Warning: Cannot modify header information - headers already sent by
 
 автор: chexov   (07.05.2008 в 18:30)   письмо автору
 
 

Нажимаю в скрипте ссылку обновить страницу после очистки сессии,
вылазит вот такая ошибка

 Warning: Cannot modify header information - headers already sent by (output started at /home/chexov/public_html/wap/tests/index.php:12) in /home/chexov/public_html/wap/tests/index.php on line 74

на 74 строке вот такого вида редирект:

header("Location: ".$_SERVER['PHP_SELF']."&".SID."");

Шапка документа такова:

header ("Content-type: application/xhtml+xml; charset=UTF-8");
session_name("SID");
session_start();
echo "<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE html PUBLIC '-//WAPFORUM//DTD XHTML Mobile 1.0//EN' 'http://www.wapforum.org/DTD/xhtml-mobile10-flat.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='ru'>
<head>
<meta name='author' content='****@mail.ru'/>
<meta name='keywords' content='wap'/>\n";
echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<meta name='keywords' content='***' />\n";
echo "<title>WAP</title>\n";
echo "<link href='http://".$_SERVER['SERVER_NAME']."/style.css' rel='stylesheet'  type='text/css' /></head><body>\n";

В чем проблема?

   
 
 автор: winflip   (07.05.2008 в 18:35)   письмо автору
 
   для: chexov   (07.05.2008 в 18:30)
 

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

   
 
 автор: sim5   (07.05.2008 в 18:35)   письмо автору
 
   для: chexov   (07.05.2008 в 18:30)
 

Заголовки должны передаваться до любого вывода в браузер, это первое (об этом и ошибка). Второе - $_SERVER['PHP_SELF'] выдаст имя скрипта, например, /main.php, и если вы хотите передать переменную в адресе, то первая переменная которая указывается в нем, прописываяется после ?, а вот уже последующие через &.

   
 
 автор: chexov   (07.05.2008 в 18:37)   письмо автору
 
   для: sim5   (07.05.2008 в 18:35)
 

блин опечатался:
header("Location: index.php?".SID."");

   
 
 автор: chexov   (07.05.2008 в 19:16)   письмо автору
 
   для: chexov   (07.05.2008 в 18:37)
 

так что может быть за проблема?

   
 
 автор: sim5   (07.05.2008 в 19:21)   письмо автору
 
   для: chexov   (07.05.2008 в 19:16)
 

Вам уже ответили дважды, и видимо на все 100% верно - до header(...) уже был вывод в браузер. Просмотрите свой код внимательно.

   
 
 автор: chexov   (07.05.2008 в 19:24)   письмо автору
 
   для: sim5   (07.05.2008 в 19:21)
 

вывод чего?

   
 
 автор: DEM   (07.05.2008 в 19:28)   письмо автору
 
   для: chexov   (07.05.2008 в 19:24)
 

Пофиг чего... Просто если в браузер что-то отображается ДО header(), то будет ошибка...

   
 
 автор: sim5   (07.05.2008 в 19:30)   письмо автору
 
   для: chexov   (07.05.2008 в 19:24)
 

Даже пробела перед тегом <?php, например, не должно быть, не говоря о другом.

   
 
 автор: Atheist   (07.05.2008 в 23:45)   письмо автору
 
   для: chexov   (07.05.2008 в 19:24)
 

На 12-ой строке index.php

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования