Clave de forma inválida. Por favor actualice la página. error al guardar el producto

14

Hola a todos.
Recibo este error " Invalid Form Key. Please refresh the page." cada vez que intento guardar mi producto en el panel de administración.
He pasado por este enlace aquí pero no he tenido éxito.
Cuando miré mi archivo de registro me mostró esto

2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: httponly  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 94
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: secure  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 96
2013-09-03T07:07:43+00:00 ERR (3): Notice: Undefined index: domain  in /var/www/app/code/core/Mage/Core/Model/Session/Abstract/Varien.php on line 98

Comenté las líneas en el archivo como se sugiere en este artículo aquí. Y los errores en los archivos de registro desaparecieron. Pero aún no puedo guardar mi producto y aparece el error "Clave de formulario no válida. Actualice la página". es como es
Revisé los datos de la publicación en Firebug y me mostró

form_key    THJDhxajLIZnzrHt
form_key    {{formKey}}

como variables clave de formulario que pasan cuando guardo mi producto. Cuando lo revisé en mi máquina local, me muestra

form_key    prvOwOCGjSKG6DpF
form_key    {{formKey}}
form_key    prvOwOCGjSKG6DpF

algo como esto.
¿Alguien tiene alguna idea de lo que está mal aquí? Aquí puedo ver que el último valor para " form_key" pasar en vivo es " {{formkey}}" mientras que en local es " prvOwOCGjSKG6DpF". Cualquier ayuda es apreciada.

Jaimin Sutariya
fuente

Respuestas:

11

Hay una fuente más para este error: un error cookie_domainen la configuración. Como no puede iniciar sesión en el área de administración, puede verificarlo directamente a través de mysql:

SELECT * FROM core_config_data WHERE path LIKE '%cookie_domain%';

También puede cambiar el valor en mysql directamente. No olvides borrar el caché después.

Andreas von Studnitz
fuente
4

Primero intente deshabilitar cualquier módulo personalizado que haya instalado y vea si el problema persiste.

Parece que algo está inyectando un campo adicional en la página del producto que está colisionando con el parámetro form_key que usa el cargador de medios y otras partes de la página de edición del producto como un nonce .

Roscio
fuente
Hola Roscius, como sugeriste, aunque debe haber algún problema con los archivos de carga de medios en la carpeta magento js. Reemplacé la carpeta js y todo funciona ahora. Gracias ..
Jaimin Sutariya
2

problema con su archivo principal. Verifique la ruta y el código a continuación. Debe haber comentado el código siguiente para el problema de inicio de sesión de Chrome.

 app/code/core/Mage/Core/Model/Session/Abstract/Varien.php:87
// session cookie params
$cookieParams = array(
    'lifetime' => $cookie->getLifetime(),
    'path'     => $cookie->getPath(),
    'domain'   => $cookie->getConfigDomain(),
    'secure'   => $cookie->isSecure(),
    'httponly' => $cookie->getHttponly()
);

if (!$cookieParams['httponly']) {
    unset($cookieParams['httponly']);
    if (!$cookieParams['secure']) {
        unset($cookieParams['secure']);
        if (!$cookieParams['domain']) {
            unset($cookieParams['domain']);
        }
    }
}
Zaheerabbas
fuente
1

Eche un vistazo más de cerca a su archivo .htaccess. Cuando migro mi tienda Magento 1.7.0 a otro servidor, incluí el archivo .htaccess del servidor anterior y luego el mensaje: "Clave de formulario no válida. Actualice la página" en la pantalla y no sucede nada, incluso los cambios de configuración tuvieron efecto. La solución fue instalar un nuevo magento y luego copiar los archivos de My Store en la raíz de Magento, excluyendo .htaccess. Cuando utilicé el .htaccess de la instalación nueva, todo comienza a funcionar bien. No sé qué sucede exactamente, tal vez cada estructura de servidor tiene entradas y reglas diferentes y particulares de .htaccess. A mi me funciona.

Paulo
fuente
1

No estoy exactamente seguro de cuál era el problema, pero parece haber sido el resultado de las ServerNamedirectivas de mi servidor Apache .

Le di al servidor el mismo global ServerNameque le di a mi instalación de Magento. Dado que todo el propósito de las claves de formulario (creo) tiene que ver con la seguridad con los nombres de dominio (XSRF, etc.), podría ser la razón.

Cambié mi global ServerNamea, literalmente, "ejemplo.com".

Luego borré el caché de Magento y todas las sesiones en el servidor remoto, y eliminé las cookies en mi navegador.

Y ahora está funcionando.

(No tenía nada que ver con PHP max_input_varsen este caso. Sin embargo, hace mucho tiempo tuve un problema diferente relacionado con ellos. Al guardar productos de categoría, solo se max_input_varsguardaría el primer número de productos, y el resto se disociaría con el categoría. Por lo tanto, es posible que ya tenga 10,000 productos en la categoría, pero cuando intente agregar 1 más en el administrador y termine con solo 1,000).

Buttle Butkus
fuente
1

Este error surge debido a la variable php.ini " max_input_vars ". Increméntelo a 10000 a través de la siguiente función php:

ini_set('max_input_vars', 10000);

O usando la línea de comando de Linux

cd /etc/php/7.0/apache2/
vi php.ini (Open for edit and set max_input_vars=10000)
:wq(Press esc and write the mentioned command to save and exit)
sudo /etc/init.d/apache2 restart(Restart Server)
Ahmad Vaqas Khan
fuente