Errore: chiave modulo non valida


9

Riscontro un problema con magento 1.9.2.3, viene visualizzato un messaggio di errore quando mi collego al mio modulo di amministrazione personalizzato.

Ho creato un modulo e ho duplicato la pagina cliente / account / login per il ruolo dei miei utenti.

<?xml version="1.0"?>
<config>
    <modules>
        <Custom_Page>
            <active>true</active>
            <codePool>local</codePool>
        </Custom_Page>
    </modules>
</config>

mio config.xml:

<?xml version="1.0"?>
<config>
    <global>
        <page>
            <layouts>
                <Custom_Page>
                    <label>User Login</label>
                    <template>page/user_login.phtml</template>
                </Custom_Page>
            </layouts>
        </page>
    </global>
</config>

Nessun problema con la vecchia versione di Magento.

Ma con 1.9.2.3: la chiave del modulo non valida. Aggiorna la pagina visualizzata.

NOTA: se sostituisco il vecchio Observer.php è fatto:

www \ app \ code \ Core \ Mage \ Admin \ modello \ Observer.php

Ma penso che non sia serio sostituire il nuovo Observer.php con il vecchio.

EDIT: Il mio user_login.phtml contiene un input form_key.

<form action="/admin" method="post" id="login-form">
    <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>"/>

Grazie per l'aiuto.


quale browser web hai usato? Prova a utilizzare Firefox perché ho riscontrato anche questo tipo di errore su Chrome.
Fayyaz Khattak,

Uso Chrome ma è lo stesso errore con tutti i browser Web (Firefox, IE, Safari).
phpschool

Puoi per favore impostare "Dominio cookie" dal sistema per rendere questa cosa corretta.
Ketan Panchal,

Risposte:


27

Ho avuto lo stesso problema e ho potuto risolverlo impostando il corretto

web / biscotto / cookie_domain

e

web / biscotto / cookie_path

valori nella tabella core_config_data.

Non dimenticare di cancellare tutti i dati di sessione e cookie nel browser e la sessione Magento e i file / dati della cache in seguito.


3
Quindi, cosa devo impostare in queste voci?
Alejandro del Río,

quali sono le voci per favore?
Zoya

12

Ho usato queste domande e ho potuto accedere di nuovo

DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain'; DELETE FROM core_config_data WHERE path='web/cookie/cookie_path';

e assicurati che l'utente del server web abbia il diritto di scrivere nella memoria della sessione. verifica session_save_pathdell'impostazione se si salva la sessione in file. Sembra così

<session_save><![CDATA[files]]></session_save> <session_save_path><![CDATA[/tmp/session]]></session_save_path>


bel modo senza la necessità di phpmyadmin, grazie :)
acidjunk

Bello! Questa soluzione funziona per me!
Marc

5

Controlla le tue impostazioni per https. Se usi https per il tuo magento ma provi ad aprire un sito con http avrai questo problema.


1
cambia config web / secure / use_in_adminhtml su 0 in quel caso
roman204

Grazie, @ roman204, che mi stava facendo impazzire! Ero così sicuro che questa impostazione significasse solo "usa tutto ciò che è definito nell'URL di base sicuro" ma apparentemente no, cerca di imporre https a prescindere. Dopo quasi un decennio di lavoro con la cosa benedetta, non avevo ancora incontrato questa stranezza fino ad ora. Magento, il dono che continua a fare: D: D
Doug McLean

5

Ho ricevuto questo errore dopo l'aggiornamento a php7.0 . eseguire magento enterprise 1.9 . Ho quindi provato ogni suggerimento là fuori. Ecco come l'ho fatto funzionare:

  1. Ho aggiunto la segnalazione degli errori nel mio index.php e ho corretto tutti gli errori segnalati.

  2. Nella tabella MySQL core_config_data, ho cancellato i valori per web/cookie_path web/cookie_httponly. Assicurati di avere il giusto web/cookie_domain valore con il tuo dominio (molto importante).

  3. Svuota la cache e i cookie del browser .


4

Le versioni più recenti di Magento richiedono moduli per <input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey() ?>" />prevenire attacchi CSRF (Cross-Site Request Forgery).


Sì, ho già aggiunto un input form_key nel mio modulo e questo è lo stesso risultato.
phpschool

Potete confermare che la chiave del modulo viene effettivamente generata? (controlla l'origine della pagina). Questo problema si è verificato quando hai aggiornato Magento? Da quale versione?
Andyjv,

Sono sicuro che quando vado a controllare la pagina di origine: <input type="hidden" name="form_key" value="Pzty7ZxT6PWRSjhR"/>con magento 1.7.0.2 va bene.
phpschool

3

Ho avuto lo stesso errore con Magento 1.9.2.3 dopo aver copiato il sito sul server Web locale su MAMP 3.

Quindi, problema risolto quando ho cambiato nella tabella core_config_datail web/cookie/cookie_domainal mysite.lanposto del mysite.lan:8888.


2

Nel mio caso questo funzionava su Linux ma nel mio ambiente Windows locale usando virtualbox / Docker e windows 10 questo errore era causato dalle strane autorizzazioni che vb / docker / windows concede a / var / session /. Solo nel mio ambiente di sviluppo locale ho spostato il percorso da un'unità Windows mappata a un percorso "reale" sulla VM Linux

Ho aggiunto questo al file di configurazione app/etc/local.xml, quindi ho eliminato tutti i file var/cachee ho var/sessionpotuto accedere OK.

<session_save><![CDATA[files]]></session_save>
<session_save_path><![CDATA[/tmp]]></session_save_path>

2

Nel mio caso ho creato l'errore con questi passaggi: avevo spostato una copia magento (dev) nel magento stesso: magento / magento-copy Prima, erano uno accanto all'altro sul server. Tutti con la propria quota. Quindi, spostando un qutoa nell'altro -> si sono verificati problemi. Causa Non ho potuto visualizzare la copia magento con FTP Ho cambiato il proprietario dei file con l'editor di file. Per qualsiasi motivo ciò ha creato l'errore.



1

Ricevo spesso questo problema quando lavoro su diversi siti di sviluppo e siti live e c'è una certa confusione nei cookie. In precedenza l'ho risolto con query MySQL ed eliminazione di file, ma ho trovato un modo più semplice per risolvere il problema.

Lo strumento magerun fornisce un modo per verificare la presenza di problemi con il percorso dei cookie e per risolverli. magerun non fa parte di Magento, quindi dovrai installarlo. È descritto come un coltellino svizzero per magento, quindi potresti trovarlo utile per altre cose.

Per scaricarlo:

wget https://files.magerun.net/n98-magerun.phar

Poi

chmod +x n98-magerun.phar

Quindi controlla il percorso del cookie per problemi ...

./n98-magerun.phar config:get web/cookie/*

Stamperà una tabella. Guarda il valore per web/cookie/cookie_domain. Quando riscontro questo problema, non corrisponde al nome host corretto per il sito (ad esempio, ottengo dev.example.cominvece di www.example.com).

Per risolverlo è necessario ripristinare il percorso e svuotare la cache, che magerun può aiutare con ...

./n98-magerun.phar config:set web/cookie/cookie_domain ""
./n98-magerun.phar cache:flush

Dovresti quindi essere in grado di accedere di nuovo.


0

Il mio problema era php versione 7.2.

cambia la mia versione php per 5.6 in .htaccess

Applicazione AddHandler / x-httpd-php56 .php suPHP_ConfigPath / opt / php56 / lib


0

Un altro modo in cui questo errore può verificarsi per i moduli di amministrazione fatti in casa è quando frontNamenel tuo routes.xmlnon corrisponde al <add action"someFrontName/someAction" />nel tuo menu.xml. Questo fa sì che la chiave visualizzata nel collegamento quando si tenta di aprire il modulo sia diversa da quella prevista.


0

Per quanto riguarda la risposta accettata ( https://magento.stackexchange.com/a/102678/6078 ) le voci corrette sono

web / cookie / cookie_domain = l'URL di base come:

https://website.com/ (without any store code)

e

web / biscotto / cookie_path

in genere solo /ma può essere /[storecode]|anche per negozio

Per lo sviluppo locale di solito funziona per eliminarlo cookie_domaino lasciarlo vuoto ma sembra che Microsoft Edge 80 abbia dei problemi con questo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.