Impossible de se connecter: «ERREUR: les cookies sont bloqués ou ne sont pas pris en charge par votre navigateur. Vous devez activer les cookies pour utiliser WordPress. "


14

Après un déplacement de serveur, je ne parviens pas à me connecter à mon site. J'obtiens le message "ERREUR: les cookies sont bloqués ou ne sont pas pris en charge par votre navigateur. Vous devez activer les cookies pour utiliser WordPress." erreur lorsque j'essaie de soumettre le formulaire de connexion.

Je suis certain que mon navigateur prend en charge les cookies et qu'ils ne sont pas bloqués.

J'ai fait des recherches assez approfondies et j'ai essayé toutes les suggestions que j'ai trouvées:

  • renommé le répertoire des plugins
  • renommé le répertoire du thème du site
  • recherché dans la base de données des instances de l'URL précédente et remplacé celles par la nouvelle URL
  • mise à jour de WordPress vers la dernière version (4.0)
  • WP_HOME et WP_SITEURL définis dans wp-config.php
  • définissez ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH et SITECOOKIEPATH dans wp-config.php:

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

Je peux me connecter au site sur mon installation locale et je peux me connecter au site sur notre serveur de développement. Des idées ce qui pourrait être à l'origine de cela?


1
Regardez la source HTML de la page de connexion. Y a-t-il quelque chose avant la ligne initiale de DOCTYPE? Même une ligne vierge? Si tel est le cas, vous disposez d'un morceau de code créant une sortie avant la création des en-têtes, auquel cas cela l'empêche de définir des cookies.
Otto

2
Cela est dû au fait que Wordpress applique un contrôle $ secure_cookie sur un canal crypté pour les connexions administrateur. Reconfigurez votre serveur Web pour appliquer SSL / TLS. KR.

Si vous utilisez WordPress MU, l'ajout du domaine à la liste des domaines dans les paramètres peut résoudre le problème.
Mahdi Taghizadeh

2
C'est ce qui a fonctionné pour moi: j'ai changé http en https (ajouté 's') et le tour est joué. Plus de problème de cookie.
Prisonnier 13

@MahdiTaghizadeh - Pouvez-vous expliquer plus en détail ce que vous voulez dire?
Greeso

Réponses:


26

Ajoutez la ligne ci-dessous à votre wp-config.php avant / * C'est tout, arrêtez l'édition! ... * /

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

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

1
Cette solution a également fonctionné pour moi sur une installation multisite. J'ai pu me connecter au site principal mais pas au site secondaire.
Be.St.

@ Be.St., Essayezdefine('COOKIE_DOMAIN', '');
Steve

1
Cela n'a pas fonctionné immédiatement pour moi, mais a fait un rafraîchissement (ctrl + f5 en chrome)
Dave

4

C'était du vernis.

Notre hébergeur avait installé Varnish d'une manière spécifique à Drupal, et il filtrait les cookies que WordPress utilise pour gérer les connexions.


1
Dans mon cas, c'est AWS CloudFront qui a bloqué les cookies.
Mantas

J'ai vu cela avec le site non sécuriséhttp: // mais pour moi tout fonctionne lors de l'utilisation de https: //
CrandellWS

1

J'ai été googlé et j'ai essayé de toutes les manières de me débarrasser de ce problème de cookie. Enfin, j'ai trouvé deux solutions qui pourraient vous aider.

Solution 1:

votresite / wp-login.php

Commentaire suivant les lignes 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);

Cela peut fonctionner pour certains sites Web et certains sites peuvent afficher une page vierge. De plus, ce n'est pas recommandé, car ce fichier peut être remplacé après la mise à jour de wordpress, essayez donc une deuxième solution.

Solution 2:

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

Placez le code suivant.

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

La mise à jour de votre thème peut également perdre ces modifications, veuillez donc placer ce code dans un autre functions.php, qui se trouve sous votre dossier de thème enfant dans votre thème actif actuel. J'espère que cela vous aidera.


2
Ce sont vraiment des solutions. Plus comme un travail, pas idéal pour l'utiliser en permanence ...
Jake

-1 pour "Solution" 1 car l'édition du noyau n'est JAMAIS la bonne action. 2 fonctionnera mais il n'identifie pas le problème.
Jeremy

1

J'ai également eu ce problème récemment, il s'est avéré que même si le nom de domaine était dirigé vers le site Web, le multisite wordpress n'avait pas d'enregistrement dans la base de données pour mapper le nom de domaine sur le blog correct, donc lorsque wordpress essayait de définir les cookies, il définissait le cookie pour le sous-domaine au lieu du domaine mappé.


Cela a fonctionné pour moi. J'utilise wordpress.org/plugins/wordpress-mu-domain-mapping pour le mappage de domaine et dès que j'ai ajouté l'enregistrement de mappage, j'ai cessé d'obtenir l'erreur "ERREUR: les cookies sont bloqués ou ne sont pas pris en charge par votre navigateur".
lee_mcmullen

-1

J'ai implémenté la solution proposée par wpdevramki et j'ai remarqué que le problème suivant pouvait apparaître:

"Remarque: la constante COOKIE_DOMAIN est déjà définie dans /wp-config.php sur la ligne 102"

Pour résoudre ce problème, veuillez commenter le code suivant dans le wp-includes / default-contants.php

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

3
NE MODIFIEZ PAS LE CODE DE BASE!
Jeremy
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.