функция Header(), Выдает ошибку

Alt-Shift

Новичок
Проблема та же: с выводом заголовков.
Правда, строк с этим выводом аж 4, и все они прописаны в условиях:
PHP:
if (!isset($c)) $c='';
switch($c) {
case "":
   summa();
   price();
   echo "&nbsp;&nbsp;<a href='$PHP_SELF?c=korzina&SID=$SID'>Корзина покупок</a><BR>";
   break;
case "korzina":
   summa();
   korzina();
   echo "<li><a href='$PHP_SELF?SID=$SID'>Каталог товаров</a>";
   echo "<li><a href='$PHP_SELF?c=delete&SID=$SID'>Очистить корзину (осторожно!)</a>";
   break;
case "add":
   $k=@array_keys($v);
   for ($i=0; $i<count($k); $i++) {
      tadd($v[$k[$i]]);
   }
   exit(header("Location: $PHP_SELF?c=korzina&SID=$SID"));
   break;
case "kolvo":
   $k=@array_keys($v);
   for ($i=0; $i<count($k); $i++) {
      $t[$k[$i]][kol]=abs(intval($v[$k[$i]]));
   }
   session_register("t");
   if (isset($edit)) exit(header("Location: $PHP_SELF?c=korzina&SID=$SID"));
  exit(header("Location: $PHP_SELF?c=zakaz&SID=$SID"));
   break;

case "del":
   $id=intval($id);
   unset($t[$id]);
   unset($t[all][$id]);
   session_register("t");
   exit(header("Location: $PHP_SELF?c=korzina&SID=$SID"));
   break;
case "delete":
   $k=@array_keys($t[all]);
   for ($i=0; $i<count($k); $i++) {
      unset($t[$k[$i]]);
      unset($t[all][$k[$i]]);
   }
   session_register("t");
   exit(header("Location: $PHP_SELF?c=korzina&SID=$SID"));
Прочитала http://phpfaq.ru/headers Там сказано, что
Очень часто такую ошибку вызывает файл, подключаемый через include
Именно после того, как файл shop.php был подключен к index.php эта ошибка и появилась.
Для решения этой проблемы нужно функцию header() (или session_start(), setcookie) и всю логику, которая ее вызывает, поместить ДО любого вывода в броузер. Просто перенести повыше в скрипте.
А как посылать их первыми? Просто эти же строчки не вырезать...
 

Alt-Shift

Новичок
Автор оригинала: Фанат
и что - все 4 одновременно выполняются?
Да я попробовала, просто эту одну строчку вывести в самое начало, удалив ее из всех этих case'ов, так вообще перестало что либо выводиться...

p.s. в программированни я почти ноль...
 

Фанат

oncle terrible
Команда форума
хорошо, в программировании ноль.
а по чтению у тебя какая оценка?
ты читала текст по ссылке? там написано - где смотреть, КАКАЯ ИМЕННО строчка выводится?
 

Alt-Shift

Новичок
К примеру,
Warning: Cannot modify header information - headers already sent by (output started at /home/alt-shiftru/clubnextru/shop/atop:11) in /home/alt-shiftru/clubnextru/shop/cat/processor/shop.php on line 103
103 - exit(header("Location: $PHP_SELF?c=korzina&SID=$SID"));
 

MajestiC

Пых
Есть еще 1 вариант - Используй буфферизацию вывода. ob_start, ob_end_flush.

http://php.net/ob_start/
 
Сверху