Nie można się zalogować: „BŁĄD: pliki cookie są zablokowane lub nie są obsługiwane przez przeglądarkę. Aby korzystać z WordPress, musisz włączyć obsługę plików cookie. ”

14

Po przeniesieniu serwera nie mogę zalogować się do mojej witryny. Otrzymuję komunikat „BŁĄD: pliki cookie są blokowane lub nie są obsługiwane przez Twoją przeglądarkę. Musisz włączyć obsługę plików cookie w celu korzystania z WordPress”. błąd podczas próby przesłania formularza logowania.

Jestem pewien, że moja przeglądarka obsługuje pliki cookie i nie są one blokowane.

Przeanalizowałem to dość dokładnie i wypróbowałem każdą znalezioną sugestię:

  • przemianowano katalog wtyczek
  • zmieniono nazwę katalogu motywów witryny
  • przeszukał bazę danych w poszukiwaniu wystąpień poprzedniego adresu URL i zastąpił je nowym adresem URL
  • zaktualizowano WordPress do najnowszej wersji (4.0)
  • zdefiniowane WP_HOME i WP_SITEURL w wp-config.php
  • ustaw ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH i SITECOOKIEPATH w wp-config.php:

    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
  • próbowałem tego włamać się do wp-login.php: https://wordpress.org/support/topic/cookies-are-blocked-or-not-supported-by-your-browser-1#post-5026171

Mogę zalogować się na stronie w mojej lokalnej instalacji i mogę zalogować się na stronie na naszym serwerze deweloperskim. Wszelkie pomysły, co może być tego przyczyną?

Sarah German
źródło
1
Spójrz na źródło HTML strony logowania. Czy jest coś w ogóle przed początkową linią DOCTYPE? Nawet pusta linia? Jeśli tak, to przed utworzeniem nagłówków masz fragment kodu, który tworzy dane wyjściowe, co uniemożliwia ustawienie plików cookie.
Otto
2
Wynika to z faktu, że Wordpress wymusza kontrolę $ secure_cookie nad szyfrowanym kanałem logowania administratora. Ponownie skonfiguruj swój serwer WWW, aby wymuszał SSL / TLS. KR.
Jeśli używasz WordPress MU, dodanie domeny do listy Domeny w Ustawieniach może rozwiązać problem.
Mahdi Taghizadeh,
2
Oto, co zadziałało: zmieniłem http na https (dodane „s”) i voila. Nigdy więcej problemu z plikami cookie.
Więzień 13
@MahdiTaghizadeh - Czy możesz wyjaśnić, co masz na myśli, proszę bardziej szczegółowo?
Greeso,

Odpowiedzi:

26

Dodaj poniższy wiersz do wp-config.php przed / * To wszystko, przestań edytować! ... * /

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

/* That's all, stop editing! Happy blogging. */
wpdevramki
źródło
1
To rozwiązanie zadziałało również w przypadku instalacji na wielu serwerach. Mogłem zalogować się na stronie głównej, ale nie na drugiej.
Be.St.
@ Be.St., Spróbujdefine('COOKIE_DOMAIN', '');
Steve
1
Nie działało to od razu dla mnie, ale działało przy twardym odświeżaniu (ctrl + f5 w chrome)
Dave
4

To był Lakier.

Nasz host skonfigurował Varnish w sposób specyficzny dla Drupala i filtrował pliki cookie, których WordPress używa do obsługi logowania.

Sarah German
źródło
1
W moim przypadku to AWS CloudFront blokował pliki cookie.
Mantas
Widziałem to z braku bezpiecznego sitehttp: // ale dla mnie wszystko działa podczas korzystania z https: //
CrandellWS
1

Zostałem przeszukany i wypróbowałem wszystkie sposoby, aby pozbyć się tego problemu z plikami cookie. Wreszcie znalazłem dwa rozwiązania, które mogą ci pomóc.

Rozwiązanie 1:

twoja strona / wp-login.php

Skomentuj następujące wiersze 770-773

Kod

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);

Może to działać w przypadku niektórych witryn, a niektóre witryny mogą wyświetlać pustą stronę. Co więcej, nie jest to zalecane, ponieważ plik ten może zostać zastąpiony po aktualizacji wordpress, więc spróbuj drugiego rozwiązania.

Rozwiązanie 2:

twoja witryna / wp-content / themes / yourthemeFolder / functions.php

Umieść następujący kod.

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

Aktualizacja motywu może również spowodować utratę tych zmian, dlatego umieść ten kod w innej funkcji.php, która znajduje się w folderze motywu podrzędnego w bieżącym aktywnym motywie. Mam nadzieję, że ci to pomoże.

Raj
źródło
2
To są naprawdę rozwiązania. Bardziej jak obejście, nie idealne używanie tego na stałe ...
Jake,
-1 dla „Rozwiązania” 1, ponieważ edytowanie rdzenia NIGDY nie jest poprawnym działaniem. 2 będzie działać, ale nie identyfikuje problemu.
Jeremy,
1

Ostatnio miałem również ten problem, okazało się, że chociaż nazwa domeny była skierowana w stronę strony internetowej, witryna Wordpress Multisite nie miała zapisu w bazie danych, aby odwzorować nazwę domeny na prawidłowego bloga, więc kiedy Wordpress próbował ustawić ciasteczka, to ustawia ciasteczko dla subdomeny zamiast zamapowanej domeny.

Terry Kernan
źródło
To zadziałało dla mnie. Używam wordpress.org/plugins/wordpress-mu-domain-mapping do mapowania domen i jak tylko dodałem rekord mapowania, przestałem otrzymywać błąd „BŁĄD: Pliki cookie są blokowane lub nie są obsługiwane przez przeglądarkę”.
lee_mcmullen
-1

Zaimplementowałem rozwiązanie podane przez wpdevramki i zauważyłem, że może pojawić się następujący problem:

„Uwaga: stała COOKIE_DOMAIN została już zdefiniowana w pliku /wp-config.php w wierszu 102”

Aby rozwiązać ten problem, skomentuj następujący kod w pliku wp-include / default-contants.php

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);
Pies techniczny
źródło
3
NIE MODYFIKUJ PODSTAWOWEGO KODU!
Jeremy,