web-dev-qa-db-fra.com

Wordpress admin cookies bloqués erreur bloquée après le déplacement des serveurs

Contexte: possédait un site Wordpress 3.7 opérationnel sur olddomain.com.

Je l'ai déplacé avec succès vers newdomain.com et, au cours du processus, j'ai ajouté ceci à wp-config:

define('WP_HOME','http://newdomain.com');
define('WP_SITEURL','http://newdomain.com');

Maintenant, lorsque j'essaie de me connecter depuis newdomain.com/wp-admin, le message d'erreur «multi-navigateur» s'affiche (malgré l'activation des cookies et l'effacement des cookies existants):

ERROR: Cookies are blocked or not supported by // your browser. 
You must enable cookies to use WordPress.

J'ai essayé d'aller dans wp-login.php et de commenter les lignes suivantes (744-747) pour arrêter le test conditionnel du cookie

    // If cookies are disabled we can't log in even with a valid user+pass
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);

mais cela me laisse coincé dans une boucle de redirection vers la page d'administration:

http://myapp.com/wp-login.php?redirect_to=http%3A%2F%2Fmyapp.com%2Fwp-admin%2F&reauth=1

Dois-je modifier (ou ne pas définir) l'URL du site? ou existe-t-il un autre moyen de résoudre ce problème? Merci 

18
Chris B.

Après avoir migré des centaines de WP sites, voici quelques réflexions:

Si vous migrez la base de données: vérifiez dans la colonne "nom_option" de la table des options de la base de données (probablement wp_options) que les valeurs "siteurl" et "home" ont la "valeur_option" appropriée pour votre site. "siteurl" est énorme.

Je peux témoigner que la table d'options Tweak est le minimum nécessaire pour migrer une base de données vers un nouveau domaine dans WP. (ne causera pas de redirection, aura toujours des problèmes)

WP recherche ces options de base de données pour sérialiser le site sur un domaine et je suis pratiquement sûr que les définitions sont plus basses dans la pile et sans aide. Considérez les activités de wp-admin comme étant faiblement couplées à l’avant. Vous pouvez tout casser (fait) à l'avant et l'administrateur fonctionnera toujours.

En outre, le site fonctionne-t-il avec une installation générique/aucune migration ou des ajustements? 

Comme mentionné précédemment, .htaccess (manquant ou mal configuré) provoquera votre erreur. En ce qui concerne le fichier .htaccess, s’il s’agit d’un fichier point.file, de nombreux systèmes d’exploitation "ignoreront" ou "rendront invisible", de sorte qu’une application copier/coller, FTP ou similaire ne pourra pas contenir le fichier .htaccess.

(à peu près sûr.) Si vous avez déplacé la base de données et utilisé de jolies URL, vous avez manqué le fichier .htaccess, ce qui pourrait suffire. Je viens de tester localement une installation sandbox et la colonne wp_option "option_name" valeur "permalink_structure" lorsqu'elle est laissée vide dans la colonne option_value retournera à? P = 1 (statut non permanent) et .htaccess sera en grande partie ignoré.

23
Marc

ajouter à wp-config.php

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', ''); 

source originale http://wordpress.org/support/topic/cookie-error-site-not-letting-me-log-in

30
max4ever

Cela a fonctionné pour moi.

  1. Supprimer //define('COOKIE_DOMAIN', 'www.domain.com');dans votre wp-config.php
  2. Assurez-vous que tous les fichiers ont le format ANSI et non pas utf-8
5
juan.conde

Cette erreur se produit également lors du déplacement d'une installation multisite vers un nouveau domaine si vous mettez à jour toutes les options de la table de la base de données (généralement wp_options), sans oublier de modifier la ligne DOMAIN_CURRENT_SITE dans wp-config.php:

define( 'DOMAIN_CURRENT_SITE', 'yourdomain.com' );
4
guico

J'avais cette même erreur.

J'avais codé en dur les adresses Home et SiteURL dans wp-config.php pour un tout nouveau site Web - aucun plugin même installé. 

Le problème: j'avais un espace à la fin de l'URL.

define('WP_HOME','http://100.000.000.01/~acctname/wp ');
define('WP_SITEURL','http://100.000.000.01/~acctname/wp ');

La suppression de l'espace a corrigé cette erreur.

define('WP_HOME','http://100.000.000.01/~acctname/wp');
define('WP_SITEURL','http://100.000.000.01/~acctname/wp');
3
user3186106

ce bug me rendait fou ces derniers jours, alors après avoir résolu le problème, je pensais le partager avec vous! le problème était quand j’essayais de me connecter à mon back-end wordpress j’ai eu cette erreur de cookies gênante, c’est ainsi que j’ai résolu le problème!

  1. Allez sur votre ftp et votre domaine.
  2. Ensuite, allez à votre wp-contenu
  3. Allez dans votre dossier de thèmes
  4. Choisissez le thème qui est actif
  5. Recherchez functions.php de votre serveur et ouvrez-le
  6. À la fin du code, vous devriez voir la balise de fermeture p> il suffit de l'enlever, de vider les espaces également et de l'enregistrer!
  7. Accédez à votre domaine.com/wp-login.php
  8. et essayez de vous connecter, il devrait être corrigé après, vous pouvez remettre le tag là où il était et le sauvegarder à nouveau. C’est la solution pour moi. Cette astuce corrige également le problème de la page blanche dans Wordpress.

À votre santé!

3
Giorgi Khokho

J'ai vécu cela en raison de mon plugin de mise en cache.

W3 Total Cache avait ajouté ce qui suit dans mon fichier wp-config.php:

define('COOKIE_DOMAIN', 'www.olddomain.com'); // Added by W3 Total Cache

Comme il était codé en dur, il n'a pas été mis à jour vers le nouveau domaine du site. Après avoir supprimé le code ajouté (car je n’utilise pas actuellement le plug-in), j’ai pu me reconnecter. 

Je vérifierais le mot "cookie" dans wp-config.php pour voir si un plugin aurait pu ajouter quelque chose comme ceci.

3
Ricky A.

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

Solution 1:

votre site/wp-login.php

Commentaire suivant 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, cela n’est pas recommandé, car ce fichier peut être remplacé après la mise à jour de wordpress. Essayez donc de deuxième solution.

Solution 2:

votre site/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 fichier functions.php, situé sous le dossier de votre thème enfant dans votre thème actif actuel. J'espère que ceci vous aidera. 

2
Raj Ravuri

J'ai eu le même problème et rien ne fonctionne. Après la mise à niveau de mon php 5.3.x à 5.4.x cela fonctionne bien.

1
Jewel

J'ai eu le même problème avec des circonstances et des spécifications très similaires.

Finalement, après avoir essayé toutes sortes de solutions différentes suggérées en ligne, je viens de renommer mon thème actif via FTP, puis je pouvais me connecter au tableau de bord. J'ai renommé mon thème et tout a fonctionné. problèmes qu'ils ont.

1
David Alsbright

En supposant que vous utilisez une plate-forme de type Unix/Linux, assurez-vous d’avoir copié votre fichier .htaccess à partir de votre serveur d’origine et mis à jour les références à l’ancien domaine de ce fichier. Ce sera à la racine de votre déploiement wordpress (si vous l'utilisez).

Vous pouvez également avoir une référence à votre ancien domaine quelque part dans votre table wp_options de la base de données.

Sachez que, lorsque vous êtes passé d'un domaine à un autre, il peut être nécessaire de mettre à jour les emplacements des images et des médias dans les publications. Vous pouvez le faire vous-même directement dans la base de données, utiliser un utilitaire de recherche/remplacement ou rediriger manuellement vos images dans vos publications. Une autre méthode pour corriger vos données de publication consiste à exporter toutes vos publications de votre ancien site (à partir du panneau d'administration) - Outils> Exporter> Toutes les publications; puis mettez à jour manuellement l'URL dans le fichier résultant avant de l'importer sur votre nouveau site.

Tout cela et bien d’autres sont abordés à la page codex.wordpress.org. Pour plus d'informations, voir ce lien:

http://codex.wordpress.org/Changing_The_Site_URL

NOTES IMPORTANTES:

  1. Si vous souhaitez modifier quelque chose directement dans la base de données, assurez-vous de lire la section concernant les GUID

  2. Si vous utilisez Meilleure WP sécurité , , vous devrez peut-être faire autre chose, mais en fonction de ce que vous décrivez, je doute que vous l'ayez installé.

1
Damien

J'ai créé mon installation multisite il y a longtemps, lorsque vous aviez besoin d'un plugin pour le mappage de domaine. J'ai donc eu le fichier '/wp-content/sunrise.php' et dans wp-config define( 'SUNRISE', 'on' ); Cela fonctionnait très bien jusqu'à une mise à jour récente de WordPress.

J'ai vu ces erreurs dans mon debug.log:

Undefined index: HTTP_Host in ../public_html/wp-content/sunrise.php on line 10
Undefined index: HTTP_Host in ../public_html/wp-includes/ms-settings.php on line 57

J'ai donc supprimé le fichier sunrise et la définition de sunrise wp-config et ajouté les définitions de cookie de @ max4ever/@ duck_boy au fichier wp-config:

define('ADMIN_COOKIE_PATH', '/');
define('COOKIE_DOMAIN', '');
define('COOKIEPATH', '');
define('SITECOOKIEPATH', ''); 

Cela a résolu le problème. Je peux maintenant me connecter !! Remarque: j'ai essayé cette définition et cela a fonctionné aussi bien. Tiré de Guide de configuration multisite

define( 'COOKIE_DOMAIN', $_SERVER[ 'HTTP_Host' ] );
0
cipher442

L'étape suivante résout mon problème

sur wp-config.php

//define('WP_CACHE', true); // Added by W3 Total Cache Block this line
//define("COOKIE_DOMAIN", "www.domain.com"); Block this line

Supprimer les fichiers suivants de wp-content

object-cache.php 
advanced-cache.php
db.php
0
RAT