Ошибка страницы входа: Файлы cookie заблокированы из-за неожиданного вывода
У меня есть сайт WordPress, на котором недавно обнаружилась следующая ошибка на странице входа:
ОШИБКА: Файлы cookie заблокированы из-за неожиданного вывода. Для помощи, пожалуйста, обратитесь к документации или попробуйте форумы поддержки.
Я могу получить доступ к странице входа только через wp-login.php
, так как /wp-admin/
показывает пустую белую страницу.
Я искал решение в интернете и пробовал многое без успеха:
Удаление
?>
и пробелов в конце файлаfunctions.php
Проверка отсутствия пробелов в начале и конце файлов
functions.php
иwp-config.php
Открытие
wp-config.php
иfunctions.php
в Notepad++ и конвертация в UTF-8 (люди рекомендуют 'без BOM', но эта опция доступна только в новейшей версии Notepad++ - предполагаю, что UTF-8 теперь делает это автоматически)Я установил
WP_DEBUG
в значение true и не получил никаких ошибок вdebug.log
, кроме 2 ошибок, связанных с неполной загрузкой некоторых файлов. Та конкретная ошибка упоминалаnav-menu.php
; это подтвердило, что ошибки фиксируются, просто они не связаны с моими проблемами входаЯ переименовал каждую папку плагина, добавив
_tmp
в конце, чтобы исключить возможность проблем с плагинамиЯ также переименовал папку plugins, чтобы отключить все плагины одновременно
Учитывая все, что я попробовал, и то, что я не получаю никаких PHP-ошибок, что еще можно попробовать?
Эта ошибка возникает в файле wp-login.php, когда сервер не может установить куки. Это может произойти по нескольким причинам, одна из распространенных - вывод данных до установки куки.
Попробуйте следующие варианты решения:
- Обновите WordPress до последней версии, если у вас не установлена актуальная версия
- Смените тему оформления. Если вы используете кастомную тему, подключитесь по FTP и удалите папку с кастомной темой - WordPress автоматически переключится на стандартную тему
- Если проблема сохраняется, переименуйте папку с плагинами
Также проверьте лог ошибок, так как ошибки могут не выводиться на экран.

@DmitrijA спасибо, что указали на это, вы правы - при отключенных cookies сообщение об ошибке другое. Обновил ответ

Как я могу сделать что-либо из вышеперечисленного, если не могу войти в WP? Единственный доступ, который у меня остался - это FTP.

Вы можете выполнить следующие шаги:
- Переименуйте директории
themes
иplugins
. - Теперь попробуйте зайти на /wp-admin/ или /wp-login.php. Надеюсь, на этот раз это сработает.
- Если шаг 2 сработал, войдите в админку.
- Теперь переименуйте директорию
themes
обратно вthemes
. - Затем перейдите в меню
Внешний вид
и активируйте стандартную тему WordPress. - Надеюсь, на этом этапе у вас получится зайти на фронтенд сайта.
- Если это сработало, попробуйте активировать вашу предыдущую тему. Если это сработает, скорее всего, ваша тема не имеет проблем.
- Если шаг 7 сработал, переименуйте директорию
plugins
обратно вplugins
и найдите проблемные плагины. Если сайт снова перестанет работать, повторите шаги 1-6. Если шаг 7 не сработал, также повторите шаги 1-6. В этом случае проблема в вашей теме. Исправьте её.
Надеюсь, это поможет. Спасибо.

Шаг 1: Проверьте журналы ошибок, чтобы определить, какой файл(ы) вызывает ошибку. Проверка файла журнала ошибок поможет вам точно понять причину проблемы.
Шаг 2: Если ошибки выглядят как “Cannot modify header information – headers already sent by (output started at” с указанием пути к файлу и пути к файлу wp-login.php с номером строки, это подтвердит, что проблема связана с UTF-8 BOM, и вы сможете определить файл с проблемой.
Шаг 3: Откройте проблемный файл (в моём случае это был файл "custom-posts.php") в Notepad++. В меню "Кодировка" будет выбрано “Encode in UTF-8”. Убедитесь, что выбрана опция “Encode in UTF-8 without BOM”, а не “Encode in UTF-8”, затем нажмите “Convert to UTF-8 without BOM”, нажмите Enter в любом месте файла и сохраните.
Это помогло мне; однако в некоторых случаях проблема может быть в плагине, и переименование папки плагинов может помочь. Но перед внесением изменений убедитесь, что проверили журналы ошибок, чтобы понимать, что делаете.

Сначала проверьте свой сайт с темой WordPress по умолчанию, и если проблема решится, попробуйте проверить PHP-файлы вашей темы и удалить любые пробелы или переносы строк перед <?php
, а также удалите ?>
в конце файлов.
Также проверьте https://codex.wordpress.org/Editing_wp-config.php#Set_Cookie_Domain и используйте define( 'COOKIE_DOMAIN', 'www.askapache.com' );
в вашем файле wp-config.php.

По моему мнению, это связано с проблемой в теме. Выполните следующие шаги, и, надеюсь, это решит вашу проблему.
1. Установите WP_DEBUG
в TRUE
Установите значение WP_DEBUG
в TRUE
в вашем файле wp-config.php
. Это выведет осмысленное сообщение об ошибке на странице wp-login.php
. После решения проблемы вы можете отменить это изменение.
2. Посмотрите ОШИБКУ
После установки TRUE
для WP_DEBUG
вы можете получить сообщение об ошибке Cannot modify header information. Исходя из этого сообщения, можно предположить, что проблема может быть в вашей теме.
3. Переименуйте папку темы
Если пункт 2 подтвердился, переименуйте папку активной темы (например, mytheme в mytheme1). После этого вы сможете войти в систему, хотя сайт переключится на тему по умолчанию.
4. Снова активируйте тему
После успешного выполнения шага 3 и входа в систему вы можете снова столкнуться с пустой страницей. Не беспокойтесь, это связано с шагом 3.
Активируйте одну из доступных тем в Админ-панели > Внешний вид > Темы.
ПРИМЕЧАНИЕ: Не выбирайте старую тему (которую мы переименовали в пункте 3), так как в ней есть проблемы. После решения этих проблем вы сможете снова использовать эту тему.
Для выявления проблем в теме проверьте лог-файлы.
Если проблема сохраняется, попробуйте другие варианты:
1. Обновите версию WordPress. Смотрите инструкцию
2. Деактивируйте все плагины, затем снова активируйте их.
Вот и всё! Надеюсь, это поможет вам.

Странно, что error.log ничего не показывает...
Чтобы окончательно исключить символы BOM, я бы попробовал вручную перепечатать весь код (в functions.php
и wp-config.php
), который вы копировали из других источников, в документ, который точно имеет формат UTF-8. Возможно, символы остались, даже если формат документа был изменен в программе.
Дополнительное примечание: Если вы не уверены, поддерживает ли ваша версия Notepad++ сохранение "без BOM", попробуйте использовать другой редактор. Скорее всего, вам понадобится другой редактор только для решения этой конкретной проблемы.
Кроме того, пробовали ли вы полностью заменить файл wp-login.php
? Вы можете попробовать это и/или заменить всю папку wp-admin
. Если у вас были проблемы с загрузкой nav-menus.php
, возможно, другие файлы/директории также не загрузились или загрузились частично.

В некоторых случаях, если вы видите ошибки или предупреждения на странице входа, можно попробовать временно установить define('WP_DEBUG', false); в файле wp-config.php. После входа необходимо исправить реальную проблему, которой в большинстве случаев является устаревший плагин или тема. Я решал подобные ситуации таким образом: после входа обновлял все компоненты, что приводило к исправлению проблемы.
define('WP_DEBUG', false);
