Не удается войти в систему: «ОШИБКА: файлы cookie заблокированы или не поддерживаются вашим браузером. Вы должны включить куки, чтобы использовать WordPress ».

14

После перемещения сервера я не могу войти на свой сайт. Я получаю сообщение «ОШИБКА: куки заблокированы или не поддерживаются вашим браузером. Вы должны включить куки, чтобы использовать WordPress». ошибка при попытке отправки формы входа.

Я уверен, что мой браузер поддерживает куки и что они не заблокированы.

Я исследовал это довольно тщательно и попробовал каждое предложение, которое я нашел:

  • переименовал каталог плагинов
  • переименован в каталог тем сайта
  • произвел поиск в базе данных экземпляров предыдущего URL и заменил их новым URL
  • обновил WordPress до последней версии (4.0)
  • определены WP_HOME и WP_SITEURL в wp-config.php
  • установите ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH и SITECOOKIEPATH в wp-config.php:

    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
  • попробовал этот хак на wp-login.php: https://wordpress.org/support/topic/cookies-are-blocked-or-not-supported-by-your-browser-1#post-5026171

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

Сара Герман
источник
1
Посмотрите на источник HTML страницы входа. Есть ли что-нибудь вообще до начальной строки DOCTYPE? Даже пустая строка? Если это так, то у вас есть какой-то фрагмент кода, создающий вывод до создания заголовков, и в этом случае это не позволяет ему устанавливать куки.
Отто
2
Это связано с тем, что Wordpress обеспечивает контроль $ secure_cookie по зашифрованному каналу для входа администратора. Переконфигурируйте ваш веб-сервер для обеспечения SSL / TLS. KR.
Если вы используете WordPress MU, добавление домена в список доменов в настройках может решить эту проблему.
Махди Тагизаде
2
Вот что сработало для меня: я изменил http на https (добавил 's') и вуаля. Нет больше проблемы с cookie.
Заключенный 13
@MahdiTaghizadeh - Можете ли вы объяснить, что вы имеете в виду, пожалуйста, более подробно?
Greeso

Ответы:

26

Добавьте строку ниже в ваш wp-config.php перед / * Вот и все, прекратите редактирование! ... * /

 define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

/* That's all, stop editing! Happy blogging. */
wpdevramki
источник
1
Это решение также работало для меня на многосайтовой установке. Я смог войти на основной сайт, но не на дополнительный.
Be.St.
@ Be.St., Попробуйтеdefine('COOKIE_DOMAIN', '');
Стив
1
Это не сработало сразу для меня, но на жестком обновлении (Ctrl + F5 в Chrome)
Дейв
4

Это был лак.

Наш веб-хостинг настроил Varnish для Drupal, и он отфильтровывал куки, которые WordPress использует для обработки логинов.

Сара Герман
источник
1
В моем случае это был AWS CloudFront, который блокировал куки.
Мантас
Я видел это с незащищенную сайтhttp: // но для меня все работает при использовании https: //
CrandellWS
1

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

Решение 1:

YourSite / WP-login.php

Комментарий следующих строк 770-773

Код

if ( isset($_POST['testcookie']) && empty($_COOKIE[TEST_COOKIE]) )
    $user = new WP_Error('test_cookie', __("<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You must <a href='http://www.google.com/cookies.html'>enable cookies</a> to use WordPress."));
else
    $user = wp_signon('', $secure_cookie);

Это может работать для некоторых веб-сайтов, а некоторые сайты могут показывать пустую страницу. Более того, это не рекомендуется, так как этот файл может быть переопределен после обновления WordPress, поэтому попробуйте второе решение.

Решение 2:

YourSite / WP-содержание / темы / yourthemeFolder / functions.php

Разместите следующий код.

 setcookie(TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH )
    setcookie(TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH, COOKIE_DOMAIN);

Обновление вашей темы также может потерять эти изменения, поэтому поместите этот код в другой файл functions.php, который находится в папке вашей дочерней темы в текущей активной теме. Надеюсь, что это поможет вам.

Радж
источник
2
Это действительно решения. Больше похоже на обходные пути, не идеальные, чтобы использовать это постоянно ...
Джейк
-1 для «Solution» 1, потому что редактирование ядра НИКОГДА не является правильным действием. 2 будет работать, но это не идентифицирует проблему.
Джереми
1

У меня также недавно была эта проблема, оказалось, что хотя доменное имя было направлено на веб-сайт, у многопользовательского WordPress не было записи в базе данных для сопоставления доменного имени с правильным блогом, поэтому, когда WordPress пытался установить куки, он устанавливал куки для субдомена вместо сопоставленного домена.

Терри Кернан
источник
Это сработало для меня. Я использую wordpress.org/plugins/wordpress-mu-domain-mapping для сопоставления доменов, и как только я добавил запись сопоставления, я перестал получать сообщение об ошибке «ОШИБКА: файлы cookie заблокированы или не поддерживаются вашим браузером».
lee_mcmullen
-1

Я реализовал решение, данное wpdevramki, и заметил, что может возникнуть следующая проблема:

«Обратите внимание: константа COOKIE_DOMAIN уже определена в /wp-config.php в строке 102»

Чтобы решить эту проблему, закомментируйте следующий код в файле wp-includes / default-contants.php

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);
Tech Dog
источник
3
НЕ ИЗМЕНЯЙТЕ ОСНОВНОЙ КОД!
Джереми