"Chiave del modulo non valida. aggiorna la pagina "- impossibile accedere al pannello di amministrazione


18

Visito regolarmente il mio sito per assicurarmi che funzioni e ho notato che le immagini dei prodotti non venivano visualizzate, pensando che fosse un problema con la cache dell'indicizzazione. Ho provato ad accedere al pannello di amministrazione e ho ricevuto l'errore:

"chiave del modulo non valida. aggiorna la pagina"

o

Altri sintomi sono i clienti che non potevano aggiungere prodotti al carrello e prestazioni estremamente lente.

Non ci sono errori nei log (/ var / logs)

Quali passaggi aggiuntivi devo eseguire per risolvere questo problema?

Risposte:


48

Succede anche se il dominio dei cookie in Sistema> Configurazione> Web> Cookie è diverso dal dominio del sito effettivo.

Per rimuovere l'impostazione senza accedere al pannello di amministrazione:

  1. usa la seguente query SQL sulla console MySQL o in un client come phpMyAdmin:

    DELETE FROM core_config_data WHERE path='web/cookie/cookie_domain';
  2. svuota la cache. Se si utilizza il backend della cache basato su file predefinito, eliminare tutte le directory di seguito var/cache.

Quindi non appena è possibile accedere nuovamente, impostare il dominio dei cookie corretto per ciascun sito Web o negozio (Esempio: .example.comad esempio.com, www.esempio.com e tutti gli altri sottodomini)

Se stai usando n98-magerun (e dovresti!), Lo stesso può essere realizzato con:

n98-magerun config:delete web/cookie/cookie_domain
n98-magerun cache:clean config

Ciao @fschmengler, aggiungi maggiori dettagli su come controllare questa impostazione da phpmyadmin, perché l'utente non è in grado di accedere al pannello di amministrazione e alcuni sviluppatori che sono nuovi allo sviluppo di Magento non sanno dove controllare tali impostazioni nel database. Siamo spiacenti, ma solo per l'aiuto di nuovi membri :)
Mohit Kumar Arora,

@MohitKumarArora hai ragione, ho aggiornato la risposta
Fabian Schmengler,

Ora ho votato. :)
Mohit Kumar Arora,

Il modo N98 funziona alla grande. Grazie per le informazioni.
Andy Jones,

@FabianSchmengler, ho controllato core_config_data ed è il valore corretto per il mio sito. Devo ancora seguire tutti i passaggi forniti? Il tuo approccio funzionerebbe ancora in questo caso?
datasn.io

18

Sto pubblicando la domanda / risposta perché non sono riuscito a trovare nulla di rilevante.

Il problema era che l'unità su cui risiede la mia installazione di Magento era piena. Ho liberato un po 'di spazio, cancellato / var / session e / var / cache e tutto è tornato alla normalità.


1
Avvertenza: la cancellazione var/sessiondisconnetterà tutti e cancellerà tutti i carrelli degli ospiti. Vedi qui per una soluzione che rimuove solo le vecchie sessioni: magento.stackexchange.com/a/58167/243
Fabian Schmengler

@fschmengler sì, ma vuoi davvero correre il rischio con sessioni che non sono state create correttamente per cominciare? Quando ho controllato la sessione / var / c'erano tutti i tipi di file 0kb che non sono normali.
SR_Magento,

1
Assolutamente una prima cosa da controllare. Mi sto scervellando da ore. Grazie!
Bryant Jackson,

Per me era lo spazio su disco. Ho scoperto dopo aver provato a git pull, poiché non è riuscito con errore relativo allo spazio su disco.
Damodar Bashyal,

@SR_Magento Signore, sono stata rimossa la cartella cache e la cartella della sessione così tante volte che funziona solo per un po 'di tempo dopo un po' di tempo c'è uno stesso problema
Amaresh Tiwari,

3

Esistono 3 soluzioni:

  1. Usa questi comandi in phpmyadmin

    ELIMINA DA core_config_data DOVE percorso = 'web / cookie / cookie_domain';

    ELIMINA DA core_config_data DOVE percorso = 'web / cookie / cookie_path';

Ora prova ad accedere.

2. Elimina tutto nella cartella var e quindi controlla se funziona.

3. Sostituire il file .htaccess con il file .htaccess di esempio e quindi provare ad accedere all'amministratore.

Spero che ti aiuti.


1

Un altro possibile, un po 'ovvio, problema da verificare per primo: se il tuo sito utilizza SSL, assicurati di non utilizzare il protocollo http per la tua pagina di amministrazione; dovresti usare https . ad es. https://example.com/admin


1

Nel mio caso il problema sembra essere dovuto al fatto che ho creato l'utente amministratore usando n98-magerun con un utente che non può scrivere su magentofolder / var e invece ho usato la cartella fallback / tmp / magento.

Ho appena cancellato il mio utente amministratore ed eseguito un sudo -iu OTHERUSER(utente che possiede la cartella magento) e sono corso di n98-magerun admin:user:createnuovo per creare il mio utente.


AGGIORNAMENTO: in un altro caso, l'URL di amministrazione è stato visitato senza www. sintassi e le impostazioni dei cookie utilizzavano www. Metto solo il www. nell'URL di amministrazione ha risolto il problema. ;)


Non dovrebbe essere admin:user:create?
sr9yar,

1
@ sr9yar no - questo è Magento2 - questo è M1
treyBake

0

Insieme al passaggio precedente di svuotare la cache, ho anche dovuto seguire l'articolo di seguito e impostare le informazioni sui dati della sessione nel percorso corretto seguendo i passaggi seguenti

Rif. Articolo

/programming/26123081/failed-to-write-session-data-magento

L'ho risolto modificando session.save_path per inserirlo nella VM.

Cambia l'app file / etc / local.xml

sostituito con sotto

Quindi ha iniziato a funzionare. Inoltre, a volte non si può davvero dire il problema, quindi è importante abilitare la registrazione degli errori. Abilita questo facendo riferimento al seguente articolo

https://www.thecreativedev.com/how-to-enable-system-log-and-errorswarning-in-magento/


0

Cancella cookie e cache. Apri il pannello di amministrazione in modalità di navigazione in incognito.


-3

Questo problema è noto generalmente dopo l'applicazione della patch SUPEE-7405 inclusa nella versione Magento 1.9.2.3. Può essere risolto aggiungendo il codice seguente nel file - app / code / local / Mage / Core / Model / Session.php

public function validateFormKey()
{
    if (!($formKey = $_REQUEST['form_key']) || $formKey != $this->getFormKey()) {
        return false;
    }
    return true;
}

Questo file potrebbe non esistere nel tuo repository, quindi copialo app/code/core/Mage/Core/Model/Session.phpe incollalo in app/code/local/Mage/Core/Model/Session.phpDopo aver aggiunto la funzione sopra nel file perché potrebbe mancare nel file core.

Cancella anche la cache del browser e i cookie. Cancella tutti i file in Magento var/cachee il var/sessioncontenuto delle cartelle. Quindi accedi al tuo pannello di amministrazione.


Ehm ... non sarebbe una soluzione migliore quella di aggiungere l'output del blocco tasti modulo al modello adminhtml sovrascritto? (In questo modo la protezione CSRF funzionerà come previsto).
Luke A. Leber,

2
Non si dovrebbero mai modificare i file core.
Max
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.