Вход для клиентовВход для клиентов О компании

Помощь » База знаний » Общие вопросы » Диагностика скриптов »

Сообщение «Cannot send session cache limiter - headers already sent...»

Если скрипты WebAsyst установлены на вашем сервере или сервере хостинг-провайдера, в случае возникновения неполадки на сайте или в аккаунте WebAsyst может появиться сообщение следующего вида:

Warning: session_start() [function.session-start]:
Cannot send session cache limiter - headers already sent
(output started at /path/to/file.php:1) in /path/to/another/file.php on line 67

Такое сообщение означает, что в файле, путь к которому указан в скобках (/path/to/file.php), произошла преждевременная передача данных для передачи браузеру, в результате чего в файле, имя которого приведено в конце сообщения (/path/to/file.php), нарушилась работа функции, упомянутой после слова «Warning» — в данном примере session_start.

Преждевременная передача данных браузеру может быть вызвана несколькими причинами:

  1. Неправильное изменение исходного кода или повреждение файла (в том числе вредоносным ПО — вирусами и т. п.). В этом случае необходимо восстановить оригинальное состояние файла. Для восстановления всех файлов выполните обновление с помощью WebAsyst Installer.
    Совет: проблема может быть вызвана наличием в начале модифицированного PHP-файла служебного символа BOM (byte order mark), автоматически добавленного текстовым редактором, с помощью которого вносились изменения в исходный код скриптов. Чтобы удалить этот символ и устранить ошибку, откройте и снова сохраните файл, путь к которому указан в скобках в сообщении об ошибке — при этом используйте редактор кода, в котором отключена поддержка BOM.
  2. Произошел вывод сообщения о другой ошибке PHP. В этом случае необходимо выяснить текст такого сообщения и устранить причину ошибки либо временно отключить отображение сообщений PHP в браузере до устранения причины и настроить сохранение таких сообщений в специальный лог-файл.