No se puede iniciar sesión: "ERROR: las cookies están bloqueadas o no son compatibles con su navegador. Debe habilitar las cookies para usar WordPress ".

14

Después de mover un servidor, no puedo iniciar sesión en mi sitio. Aparece el mensaje "ERROR: las cookies están bloqueadas o no son compatibles con su navegador. Debe habilitar las cookies para usar WordPress". error cuando intento enviar el formulario de inicio de sesión.

Estoy seguro de que mi navegador admite cookies y que no están bloqueadas.

Investigué esto a fondo y probé todas las sugerencias que encontré:

  • renombrado el directorio de complementos
  • renombrado el directorio de temas del sitio
  • buscó en la base de datos instancias de la URL anterior y las reemplazó por la nueva URL
  • WordPress actualizado a la última versión (4.0)
  • WP_HOME y WP_SITEURL definidos en wp-config.php
  • establece ADMIN_COOKIE_PATH, COOKIE_DOMAIN, COOKIEPATH y SITECOOKIEPATH en wp-config.php:

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

Puedo iniciar sesión en el sitio en mi instalación local, y puedo iniciar sesión en el sitio en nuestro servidor de desarrollo. ¿Alguna idea de que puede estar causando esto?

Sarah German
fuente
1
Mire la fuente HTML de la página de inicio de sesión. ¿Hay algo en absoluto antes de la línea inicial de DOCTYPE? ¿Incluso una línea en blanco? Si es así, entonces tiene algún código creando salida antes de que se hagan los encabezados, en cuyo caso esto evita que se establezcan cookies.
Otto
2
Esto se debe al hecho de que Wordpress impone un control $ secure_cookie sobre un canal cifrado para inicios de sesión de administrador. Reconfigure su servidor web para aplicar SSL / TLS. KR.
Si está utilizando WordPress MU, agregar el dominio a la lista de Dominios en Configuración puede solucionar el problema.
Mahdi Taghizadeh
2
Esto es lo que funcionó para mí: cambié http a https (agregué 's') y listo. No más problemas de cookies.
Prisionero 13
@MahdiTaghizadeh - ¿Puedes explicar lo que quieres decir con más detalle?
Greeso

Respuestas:

26

Agregue la siguiente línea a su wp-config.php antes / * ¡Eso es todo, deje de editar! ... * /

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

/* That's all, stop editing! Happy blogging. */
wpdevramki
fuente
1
Esta solución también funcionó para mí en una instalación multisitio. Pude iniciar sesión en el sitio principal pero no en el secundario.
Be.St.
@ Be.St., Intentedefine('COOKIE_DOMAIN', '');
Steve
1
Esto no funcionó de inmediato para mí, pero sí en una actualización completa (Ctrl + F5 en Chrome)
Dave
4

Era barniz.

Nuestro proveedor de alojamiento web tenía Varnish configurado de manera específica para Drupal, y estaba filtrando las cookies que WordPress usa para manejar los inicios de sesión.

Sarah German
fuente
1
En mi caso, fue AWS CloudFront que bloqueó las cookies.
Mantas
Vi esto con el sitio no segurohttp: // pero para mí todo funciona cuando uso https: //
CrandellWS
1

He buscado en Google y he intentado todas las formas de deshacerme de este problema de cookies. Finalmente encontré dos soluciones que podrían ayudarte.

Solución 1:

yoursite / wp-login.php

Comentario siguiendo las líneas 770-773

Código

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

Puede funcionar para algunos sitios web y algunos sitios pueden mostrar una página en blanco. Además, esto no se recomienda, ya que este archivo puede anularse después de la actualización de WordPress, así que intente con la segunda solución.

Solución 2:

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

Coloque el siguiente código.

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

La actualización de su tema también puede perder estos cambios, por lo tanto, coloque este código en otro functions.php, que está debajo de la carpeta de tema secundario en su tema activo actual. Espero que esto te ayudará.

Raj
fuente
2
Estas son realmente soluciones. Más bien como soluciones, no es ideal para usar esto permanentemente ...
Jake
-1 para "Solución" 1 porque editar el núcleo NUNCA es la acción correcta. 2 funcionará pero no identifica el problema.
Jeremy
1

También tuve este problema recientemente, resultó que aunque el nombre de dominio apuntaba hacia el sitio web, el multisitio de wordpress no tenía un registro en la base de datos para asignar el nombre de dominio al blog correcto, por lo que cuando wordpress intentaba establecer las cookies, estaba configurando la cookie para el subdominio en lugar del dominio asignado.

Terry Kernan
fuente
Esto funcionó para mí. Estoy usando wordpress.org/plugins/wordpress-mu-domain-mapping para la asignación de dominios y tan pronto como agregué el registro de asignación, dejé de recibir el error "ERROR: las cookies están bloqueadas o no son compatibles con su navegador".
lee_mcmullen
-1

Implementé la solución dada por wpdevramki y noté que podría surgir el siguiente problema:

"Aviso: Constante COOKIE_DOMAIN ya definido en /wp-config.php en la línea 102"

Para resolver esto, comente el siguiente código en wp-includes / default-contants.php

if ( !defined('COOKIE_DOMAIN') )
    define('COOKIE_DOMAIN', false);
Perro de la tecnología
fuente
3
¡NO MODIFIQUE EL CÓDIGO PRINCIPAL!
Jeremy