Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

старая-престарая ошибка, а ещё в строю

Вот такая ошибка уже замучала. Практически на все файлы вылетает.

Warning: Cannot modify header information - headers already sent by (output started at P:\home\localhost\www\articles.php:1) in P:\home\localhost\www\includes\functions\include.php on line 1218

Помоему она стара как мир, все ещё не починили?


потому что есть миллион вариантов когда она возникает

ошибка возникает. когда до старта сессий мы пытаемся что то вывести в браузер
когда до редиректа пытаемся что то вывести в браузер


ок. спaсибо зa рaзъяснeниe. можeтe привeсти примeр, когдa онa возникaёт?


Warning: session_start() : Cannot send session cache limiter - headers already sent (output started at P:\home\localhost\www\articles.php:1) in P:\home\localhost\www\includes\top.php on line 177


К предыдущей ошибке присоединилась вот эта. Теперь они вылетаю вместе.
Подумал, может это наведет на мысли....


Какой шаб используете?
Проверяйте, в правильной ли кодировке файлы которые вы ковыряли.

На локалке более 10 шопосов разных версий и нет таких ошибок.


Думаете дело в кодировках... а причем здесь старт сессии и редирект тогда?


Старт сесси при том, что если кодировка кривая(просто UTF8), то в начале страницы могут быть не видимые символы, которые как раз и будут раньше старта сессии, что и вызывает ошибку.

попробуйте сохранить какой-то файл просто в кодировке UTF8, например featured.php и перейдите потом на страницу рекомендуемых и вылезут такие же ошибки.

Не факт, что проблема именно в кодировке, как вариант, может быть дело именно в ней.

Кодировка, естественно, нужна UTF-8 (БЕЗ BOM).



Warning: session_start() : Cannot send session cache limiter - headers already sent (output started at P:\home\localhost\www\articles.php:1) in P:\home\localhost\www\includes\top.php on line 177


К предыдущей ошибке присоединилась вот эта. Теперь они вылетаю вместе.
Подумал, может это наведет на мысли....


да такой ошибки есть разные вариации. много чего нельзя делать после того, как начался процесс вывода


ЧТо именно ? У меня php файл поделен на  несколько кейсов и дефолтный кейс. Соответственно каждый кейс это экшн, дефолтный - его отсутствие. В каждом из них добавляются метки в шаблон к примеру так:
$osTemplate->assign('LINK_EDIT', os_href_link(FILENAME_ACCOUNT_EDIT, '', 'SSL'));

Естественно в каждом кейсе свои метки.

После свича идет еще вывод меток общего назначения:

    $main_content = $osTemplate->fetch(CURRENT_TEMPLATE.'/module/account_edit.html');

    $osTemplate->assign('main_content', $main_content);

      $osTemplate->assign('language', $_SESSION['language']);
    $osTemplate->assign('tpl_path', _HTTP_THEMES_C);
    $osTemplate->caching = 0;
    $osTemplate->load_filter('output', 'trimhitespace');
    $template = (file_exists(_THEMES_C.FILENAME_ACCOUNT_EDIT.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_ACCOUNT_EDIT.'.html' : CURRENT_TEMPLATE.'/index.html');
    $osTemplate->display($template);

    include ('includes/bottom.php');

Ещё перед свичом вот такое:

  include ('includes/top.php');

$breadcrumb->add(NAVBAR_TITLE_ACCOUNT, os_href_link(FILENAME_ACCOUNT_EDIT, '', 'SSL'));
  require (dir_path('includes').'header.php');

  // check if the catalog image directory exists
  if (is_dir(dir_path('images'))) {
    if (!is_writeable(dir_path('images'))) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE.' '.dir_path('images'), 'error');
  } else {
    $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
  }

И звашей фразы не могу понять, что считать началом процесса вывода.


Кстати может вот с этим как-то связано???

http://www.shopos.ru/forum/index.php?topic=3387.0


);
    $osTemplate->assign('tpl_path', _HTTP_THEMES_C);
    $osTemplate->caching = 0;
    $osTemplate->load_filter('output', 'trimhitespace');
    $template = (file_exists(_THEMES_C.FILENAME_ACCOUNT_EDIT.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_ACCOUNT_EDIT.'.html' : CURRENT_TEMPLATE.'/index.html');
    $osTemplate->display($template);

    include ('includes/bottom.php');

Ещё перед свичом вот такое:

  include ('includes/top.php');

$breadcrumb->add(NAVBAR_TITLE_ACCOUNT, os_href_link(FILENAME_ACCOUNT_EDIT, '', 'SSL'));
  require (dir_path('includes').'header.php');

  // check if the catalog image directory exists
  if (is_dir(dir_path('images'))) {
    if (!is_writeable(dir_path('images'))) $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_NOT_WRITEABLE.' '.dir_path('images'), 'error');
  } else {
    $messageStack->add(ERROR_CATALOG_IMAGE_DIRECTORY_DOES_NOT_EXIST, 'error');
  }

И звашей фразы не могу понять, что считать началом процесса вывода.


если до  include ('includes/top.php');

что то выводим. то и вываливается ошибка
если пытаемся заголовок менять - вываливается ошибка.
если инклудятся кривые файлы до top.php - вываливается ошибка.

бывает и в includes/top.php возникает какаето ошибка, которая выводится до старта сессий. тоже вываливается кроме этой ошибки, еще и Warning: Cannot modify header information - headers already sent by


ПОхоже что проблемма с  Warning: Cannot modify header information - headers already sent by (output started at P:\home\localhost\www\articles.php:1) in P:\home\localhost\www\includes\functions\include.php on line 1218

и сопутствующими ошибками решилась. Пока больше не натыкался.

Однако языковой файл все ещё не подключается.

Есть идеи?


);
    $osTemplate->assign('tpl_path', _HTTP_THEMES_C);
    $osTemplate->caching = 0;
    $osTemplate->load_filter('output', 'trimhitespace');


а как это?

сначала нужно метки обьявить, а потом делать fetch

вот например в featured.php

);
$osTemplate->assign('main_content', $main_content);
$osTemplate->caching = 0;
$osTemplate->load_filter('output', 'trimhitespace');
$template = (file_exists(_THEMES_C.FILENAME_FEATURED.'.html') ? CURRENT_TEMPLATE.'/'.FILENAME_FEATURED.'.html' : CURRENT_TEMPLATE.'/index.html');
$osTemplate->display($template);
include ('includes/bottom.php');


Да, спасибо. С языками это помогло. Кстати, вопрос это специально языки в шаблон по два раза добавляются и так во многих файлах?

$osTemplate->assign('language', $_SESSION['language']);
$osTemplate->assign('module_content', $module_content);
$osTemplate->caching = 0;
$main_content = $osTemplate->fetch(CURRENT_TEMPLATE.'/module/featured.html');

$osTemplate->assign('language', $_SESSION['language']);
$osTemplate->assign('main_content', $main_content);

Ещё скажите пожалуйста, кеш работает одинаково для php-файлов шаблона и для общих php-файлов ? Или есть какие-то разности?


);
$osTemplate->assign('main_content', $main_content);

Ещё скажите пожалуйста, кеш работает одинаково для php-файлов шаблона и для общих php-файлов ? Или есть какие-то разности?


первый набор меток идет в шаблон featured.html

второй в index.html

и там где $box = new osTemplate;

тоже самое. для $box нужно указывать заново метки


спaсибо большоe! учту.


Источник



Copyright ShopOS