Не вдається увійти: "ПОМИЛКА: Ваш веб-переглядач блокується або не підтримується. Ви повинні ввімкнути файли cookie, щоб використовувати WordPress. "


14

Після переміщення сервера я не можу увійти на свій сайт. Я отримую "ПОМИЛКА: cookie блокуються чи не підтримуються вашим браузером. Ви повинні ввімкнути файли cookie, щоб використовувати WordPress." помилка, коли я намагаюся надсилати форму для входу.

Я впевнений, що мій веб-переглядач підтримує файли cookie та що вони не заблоковані.

Я дослідив це досить ретельно і випробував кожну пропозицію, яку я знайшов:

  • перейменовано в каталог плагінів
  • перейменовано в тему сайту
  • шукали в базі даних екземпляри попередньої 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? Навіть порожній рядок? Якщо так, то у вас є якийсь фрагмент коду, який створює вихід до того, як будуть зроблені заголовки, і в цьому випадку це заважає йому встановлювати файли cookie.
Отто

2
Це пов'язано з тим, що Wordpress здійснює контроль $ secure_cookie над зашифрованим каналом для входу адміністратора. Переконфігуруйте веб-сервер для застосування SSL / TLS. КР.

Якщо ви використовуєте WordPress MU, додавання домену до списку доменів у налаштуваннях може усунути проблему.
Махді Тагізаде

2
Це для мене спрацювало: я змінив http на https (додав 's') і voila. Більше немає проблеми з файлами cookie.
В’язень 13

@MahdiTaghizadeh - Чи можете ви пояснити, що ви маєте на увазі, будь ласка, детальніше?
Greeso

Відповіді:


26

Додайте нижче рядка до свого wp-config.php перед / * Це все, припиніть редагування! ... * /

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

/* That's all, stop editing! Happy blogging. */

1
Це рішення також працювало для мене на багатосайтовій установці. Мені вдалося увійти на головний сайт, але не на вторинний.
Бе.Ст.

@ Be.St., Спробуйтеdefine('COOKIE_DOMAIN', '');
Стів

1
Це не спрацювало одразу для мене, але все-таки відбулося жорстке оновлення (ctrl + f5 у хромі)
Дейв

4

Це був Варніш.

У нашого веб-хостингу був створений Varnish, призначений для Drupal, і він фільтрував файли cookie, які WordPress використовує для обробки входів.


1
У моєму випадку AWS CloudFront блокував файли cookie.
Мантас

Я бачив це з незахищену сайтhttp: // але для мене все працює при використанні https: //
CrandellWS

1

Я переглянув Google і спробував усі способи позбутися цієї проблеми cookie. Нарешті я знайшов два рішення, які могли б вам допомогти.

Рішення 1:

yourite / 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:

vašite / wp-content / теми / yourthemeFolder / функции.php

Розмістіть наступний код.

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

Оновлення вашої теми також може втратити ці зміни, тому, будь ласка, помістіть цей код в інший function.php, який знаходиться в папці дочірньої теми у вашій поточній активній темі. Сподіваюся, це вам допоможе.


2
Це справді рішення. Більше, як робота навколо, не ідеально використовувати це постійно ...
Джейк

-1 для "Рішення" 1, оскільки редагування ядра НІКОЛИ не є правильною дією. 2 буде працювати, але це не визначає проблеми.
Джеремі

1

У мене також була ця проблема нещодавно, виявилося, що хоча доменне ім’я було вказано на веб-сайт, у мультисайта WordPress не було запису в базі даних, щоб зіставити доменне ім'я у правильному блозі, тому коли wordpress намагався встановити cookie, він встановлював cookie для піддомену замість відображеного домену.


Це працювало для мене. Я використовую wordpress.org/plugins/wordpress-mu-domain-mapping для картографування домену, і як тільки я додав запис картографування, я перестав отримувати помилку "ПОМИЛКА: куки заблоковані або не підтримуються вашим браузером".
lee_mcmullen

-1

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

"Примітка. Постійний COOKIE_DOMAIN вже визначений у /wp-config.php у рядку 102"

Щоб вирішити це, будь ласка, прокоментуйте наступний код у wp-include / default-contants.php

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);

3
НЕ МОДИФІКУЙТЕ КОДУ!
Джеремі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.