На днях переносил готовый сайт с одного хостинга на другой. Процедура будничная. Я такое миллион раз делал. Да и, в последнее время пользовался в основном VDS (виртуальными серверами) на Центосе с хостинг-админкой на ISP. Потому, особых проблем не было, но тут понадобилось засунуть сайт на виртуальный хостинг. Что началось…
Сначала не мог создать базу данных. Пишу имя базы, логин, а панель управления выдает ошибку. Оказалось, что хостер добавляет к этим двум параметрам некий идентификатор, который их удлиняет. Но никаких сообщений, что мол длинновато, не выводит, щука! Укоротил и то и другое. База создалась. Выдохнул.
Затем, решил залить дамп в свежесозданную базу, но вместо PhpMyAdmin мне вылезло нечто, состоящее из полей и хаотично намешанного текста. Провозился с этим с пол-часа, даже вскипел от негодования. Но стоило зайти другим браузером, и всё заработало. Не работало в Хроме, если тебе интересно. Хром кака! Фаерфокс рулит! Ла-ла-ла-ла-ла!
В итоге, перенес файлы, залил подправленный, с учетом нового домена, дамп, запустил сайт и… нифига! Оказалось, что хостер меняет пусть к админке WordPress из «соображений безопастности». У меня аж челюсти свело, лицо покраснело, кулак грохнул по столешнице так, что гипсовое крошево полетело во все стороны. Что поделать, стол гипсовый, нормальным пока не обзавёлся.
Пишу в техподдержку. Там почесали репу и отключили эту их «защиту». Отлично! Ну уж теперь-то всё заработает как надо! Захожу в админку. Фиг! Да вы прикалываетесь!
Теперь при обращении к /wp-admin/ вижу белый экран, а если попытаться загрузить /wp-login.php вылезает форма авторизации, но после ввода логина/пароля вылезает надпись «ОШИБКА: Cookies заблокированы из-за неожиданного вывода на экран». Быстро зыркнул по сторонам в поисках нерадивых хостеров, которым надо оторвать руки. На нашел ни одного и принялся вводить пароли, чистить куки, включать/выключать сообщения об ошибках. Получил «Cannot modify header information», выругался, поискал еще инфы. Ну и так далее и тому подобное.
Бля…ха-муха! Подолбился в эту стену, затем полез в великий и ужасный Яндекс. Нашел туеву кучу рецептов, которые сводились к тому, что дескать, надо перекодировать wp-config.php в корне и function.php в папке шаблона в правильный UTF-8 без BOM он же No Mark. Всё это я сделал, но хрен там уже рос, видимо. Не помогло, в общем.
Среди той самой кучи г… эм… превосходных, но нифига не работающих советов, нашел еще один, который отличался от прочих. Там рекомендовали переустановить WordPress заново, очистить и залить дамп базы по-новой. Ессссссссно сделал. И… Да… он самый. Нет, не триумф. Ну ты понимаешь.
Пришлось включить голову.
Если это не помогло, попробуйте начать убирать лишние переносы строк, проблема в них.
Как я решил проблему «Cookies заблокированы из-за неожиданного вывода на экран»
- Для начала, через PhpMyAdmin полностью очистил базу данных, предназначенную для сайта.
- Затем, из корня сайта удалил wp-config.php Вот так взял и удалил его полностью!
- После, зашел на сайт, увидел там всё то, что видит любой, кто устанавливает WordPress с нуля. Заполнил все необходимые поля. Сначала спрашивали Имя базы, Логин базы, Пароль базы и префикс таблиц. Затем, название блога, логин/пароль к админке, e-mail и вроде еще что-то, не помню.
- После этого получил радостное сообщение, что мол всё, и зашел в админку.
- Отлично! Значит, с той базой, что WordPress сам заполнил, админка работает.
- Скачал дамп этой почти нулёвой, но рабочей базы, и с помощью Progremmers Notepad перенес в него из другого дампа (который планировал заливать) информацию с постами, опциями, названиями рубрик и вообще, всем, что необходимо. Таблицу с данными пользователя не трогал.
- Залил этот изменённый дамп и… всё заработало.
Конечно, если ты понятия не имеешь что такое дамп базы и не представляешь где в нём данные, содержащие посты, страницы, опции и пр., то лучше попроси того, кто умеет. Но зато, если знаешь всё это, подобным методом справишься минут за 10. Возможно.
Самый смех в том, что сайт ставил на CMS-хостинг, который хостер позиционирует специально под сайты на WordPress’е. Маркетологи хреновы! Знал бы, сразу взял самый заурядный тариф, ибо, кроме более высокой цены, ничего заточенного под WordPress я так и не углядел. Видимо, хорошо прячут.
Еще подумал, здорово, что всем этим занимался я, а не клиент. А то некоторые разрабы отдают сайт в виде архива файлов и дампа базы данных. Что клиент будет с этим делать им фиолетово, ибо уплочено. Увы, я, покамест, до подобного «высокого класса» не дорос. Но, всё впереди, надеюсь.
UPDATE 12.03.2015
Прошло 2 дня. Пытаюсь зайти в админку и снова та же ошибка! Ну ё-моё, всё-ж работало!!!(((
Полез в саппорт (в техподдержку) хостера. Там ничем не помогли, сказали писать письмо и ждать. Ответа ждал больше суток. В итоге закрыл заявку и засел ковыряться.
Для начала снова переименовал уже имеющуюся папку plugins, а вместо нее создал пустую. Не помогло!
Затем, удалил папку с темой (дизайном, шаблоном). Ошибка исчезла!
Восстановил папку с темой из копии и стал проверять каждый файл. Нашел целых 3 не в UTF-8. Перекодировал, сохранил. Не помогло!
Полез в function.php темы. Вычистил его содержимое полностью. Помогло! Ошибка исчезла.
Но без функций на сайте не будут работать нужные опции. Вернул содержимое на место и вырезал нижнюю половину. Естественно так, чтобы не оказалось перерубленных пополам функций. Делать подобные вещи надо по FTP. Но у меня других вариантов и не было.
Итак, вырезал последние 5-6 функций. Помогло!
Стал их возвращать по одной. Странное дело, оказалось, что сами функции на ошибку не влияют. Я возвращал их в разном порядке, и ошибка проявлялась то на одной, то совсем на другой.
В итоге, начал удалять лишние переносы строк и пустые пробелы. После очередного сохранения проверил и… ОШИБКА ИСЧЕЗЛА!
Сохранил, сделал резервную копию сайта и перекрестился.
Похоже, всё-таки что-то на хостинге с кодировкой. На другом работало без проблем. Впрочем, теперь уже не уверен, что ошибка не вылезет снова. Подождём.
С вами был Доктор Лексиум.
До новых постов.
Так много слов, а виноват оказался сам -), а удалять темы или плагины не обязательно, достаточно их переименовать
Во только не в плагинах было дело.
Попал к вам на страницу с гугла по схожему запросу… В моем случае дело оказалось в закрывающем теге ?> в файле подтемы functions.php, его быть не должно.
Спасибо за статью! Решить проблему «Cookies заблокированы из-за неожиданного вывода на экран» помогли манипуляции в коде файла function.php темы. Не известно, сколько бы ещё искал причину:)
Рад, что помогло.
спасибо добрый человек, проблема была в ?>, удалил все заработало
Помогло это
Иногда одна строка в файле .htaccess может сломать страницу входа в WordPress. Если файл поврежден, это может вызвать множество проблем, таких как «ошибка обновления страницы входа».
Чтобы решить эту проблему, вам нужно перейти в корень вашего хостинга. Сначала создайте резервную копию вашего файла .htaccess.
Затем удалите .htaccess из каталога host /. После того, как вы удалили файл, попробуйте войти в свою панель управления WordPress.
Если вам это удастся, вам нужно будет создать новый файл .htaccess. Для этого перейдите в свою панель управления, перейдите в настройки> постоянные ссылки и нажмите сохранить.
Повредить .htaccess довольно непросто. Если только руками. Но и тогда, как правило, вылезает совсем другая ошибка. Впрочем, спорить не буду, всякое бывает.
Скажу только, что удалять .htaccess на сайте с WordPress точно не стоит. Это убьёт всю переадресацию и вместо страниц будет вылезать что-то типа «Not Found The requested URL was not found on this server».
В панель управления WordPress, без редиректов, тоже не получится войти. Только по /wp-login.php
Если уж получилось сломать .htaccess, то лучшим решением будет восстановить его из резервной копии. Если копии нет — поискать .htaccess для WordPress (который по умолчанию) и заполнить свой из него. Ну или обратиться к специалисту.