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ą?


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. */

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.


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.


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.


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

3
NIE MODYFIKUJ PODSTAWOWEGO KODU!
Jeremy,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.