Ich kann mich nicht anmelden: “FEHLER: Cookies werden von Ihrem Browser blockiert oder nicht unterstützt. Sie müssen Cookies aktivieren, um WordPress nutzen zu können. “

14

Nach einem Serverumzug kann ich mich nicht bei meiner Site anmelden. Ich erhalte die Meldung "FEHLER: Cookies werden von Ihrem Browser blockiert oder nicht unterstützt. Sie müssen Cookies aktivieren, um WordPress verwenden zu können." Fehler beim Senden des Anmeldeformulars.

Ich bin mir sicher, dass mein Browser Cookies unterstützt und dass diese nicht blockiert sind.

Ich habe das ziemlich gründlich recherchiert und jeden Vorschlag ausprobiert, den ich gefunden habe:

  • benannte das Plugins-Verzeichnis um
  • Das Site-Design-Verzeichnis wurde umbenannt
  • Durchsuchte die Datenbank nach Instanzen der vorherigen URL und ersetzte diese durch die neue URL
  • aktualisiert WordPress auf die neueste Version (4.0)
  • definierte WP_HOME und WP_SITEURL in wp-config.php
  • Setze ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH und SITECOOKIEPATH in wp-config.php:

    define('ADMIN_COOKIE_PATH', '/');
    define('COOKIE_DOMAIN', '');
    define('COOKIEPATH', '');
    define('SITECOOKIEPATH', '');
    
  • versuchte diesen Hack zu wp-login.php: https://wordpress.org/support/topic/cookies-are-blocked-or-not-supported-by-your-browser-1#post-5026171

Ich kann mich bei meiner lokalen Installation bei der Site anmelden und ich kann mich bei der Site auf unserem Entwickler-Server anmelden. Irgendwelche Ideen, was das verursachen könnte?

Sarah Deutsch
quelle
1
Schauen Sie sich die HTML-Quelle der Anmeldeseite an. Gibt es vor der ersten DOCTYPE-Zeile überhaupt etwas? Auch eine Leerzeile? Wenn dies der Fall ist, wird vor dem Erstellen der Überschriften ein Teil des Codes ausgegeben. In diesem Fall wird verhindert, dass Cookies gesetzt werden.
Otto
1
Dies liegt an der Tatsache, dass Wordpress ein $ secure_cookie-Steuerelement für einen verschlüsselten Kanal für Administratoranmeldungen erzwingt. Konfigurieren Sie Ihren Webserver neu, um SSL / TLS zu erzwingen. KR.
Wenn Sie WordPress MU verwenden, kann das Problem möglicherweise durch Hinzufügen der Domäne zur Domänenliste in den Einstellungen behoben werden.
Mahdi Taghizadeh
1
Das hat bei mir funktioniert: Ich habe http in https ('s' hinzugefügt) und voila geändert. Keine Cookie-Ausgabe mehr.
Gefangener 13.
@ MahdiTaghizadeh - Kannst du mir bitte genauer erklären, was du meinst?
Greeso

Antworten:

26

Füge folgende Zeile zu deiner wp-config.php hinzu bevor / * Das ist alles, hör auf zu editieren! ... * /

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

/* That's all, stop editing! Happy blogging. */
wpdevramki
quelle
1
Diese Lösung hat auch bei einer Installation mit mehreren Standorten funktioniert. Ich konnte mich auf der Hauptseite anmelden, aber nicht auf der sekundären.
Be.St.
@ Be.St., Versuchen Siedefine('COOKIE_DOMAIN', '');
Steve
1
Dies funktionierte nicht sofort für mich, aber bei einer harten Aktualisierung (Strg + F5 in Chrom)
Dave
4

Es war Lack.

Unser Webhost hatte Varnish auf Drupal-spezifische Weise eingerichtet und filterte die Cookies heraus, die WordPress für die Bearbeitung von Anmeldungen verwendet.

Sarah Deutsch
quelle
1
In meinem Fall hat AWS CloudFront Cookies blockiert.
Mantas
Ich habe das mit dem nicht sicheren sitehttp: // gesehen, aber bei mir funktioniert alles mit https: //
CrandellWS
1

Ich wurde gegoogelt und habe alle Möglichkeiten ausprobiert, um dieses Cookie-Problem loszuwerden. Schließlich habe ich zwei Lösungen gefunden, die Ihnen helfen könnten.

Lösung 1:

yoursite / wp-login.php

Kommentieren Sie die folgenden Zeilen 770-773

Code

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

Es funktioniert möglicherweise für einige Websites und auf einigen Websites wird möglicherweise eine leere Seite angezeigt. Darüber hinaus wird dies nicht empfohlen, da diese Datei nach der WordPress-Aktualisierung möglicherweise überschrieben wird. Versuchen Sie daher, eine zweite Lösung zu finden.

Lösung 2:

yoursite / wp-content / themes / yourthemeFolder / functions.php

Geben Sie folgenden Code ein.

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

Bei der Aktualisierung Ihres Themas können diese Änderungen ebenfalls verloren gehen. Platzieren Sie diesen Code daher in einer anderen Datei functions.php, die sich in Ihrem aktuellen aktiven Thema im Ordner für untergeordnete Themen befindet. Hoffe, das wird dir helfen.

Raj
quelle
2
Das sind wirklich Lösungen. Eher wie Work Around, nicht ideal, um dies dauerhaft zu nutzen ...
Jake
-1 für "Lösung" 1, da das Bearbeiten des Kerns NIE die richtige Aktion ist. 2 wird funktionieren, aber es identifiziert das Problem nicht.
Jeremy
1

Ich hatte auch dieses Problem vor kurzem, es stellte sich heraus, dass, obwohl der Domainname auf die Website gerichtet war, die WordPress-Multisite keinen Datensatz in der Datenbank hatte, um den Domainnamen dem richtigen Blog zuzuordnen, also als WordPress versuchte, dies einzustellen Bei den Cookies wurde das Cookie für die Unterdomäne anstelle der zugeordneten Domäne festgelegt.

Terry Kernan
quelle
Das hat bei mir funktioniert. Ich verwende wordpress.org/plugins/wordpress-mu-domain-mapping für die Domainzuordnung. Sobald ich den Zuordnungsdatensatz hinzugefügt habe, wird der Fehler "FEHLER: Cookies werden von Ihrem Browser blockiert oder nicht unterstützt" nicht mehr angezeigt.
lee_mcmullen
-1

Ich habe die Lösung von wpdevramki implementiert und festgestellt, dass das folgende Problem auftreten kann:

"Hinweis: Die Konstante COOKIE_DOMAIN ist bereits in /wp-config.php in Zeile 102 definiert."

Um dies zu beheben, kommentieren Sie bitte den folgenden Code in der Datei wp-includes / default-contants.php aus

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);
Tech-Hund
quelle
2
KERNCODE NICHT ÄNDERN!
Jeremy