Magento 1.9 Impossibile accedere al pannello di amministrazione!


99

Ho installato Magento 1.9 . Funzionava bene per una settimana. Improvvisamente ieri, quando ho provato ad accedere al pannello di amministrazione di Magento e ho digitato usernamee password, ho fatto clic sul pulsante Accedi e non è successo nulla. La pagina si aggiorna e basta. Nessun errore o altri messaggi.

Se ho inserito un nome utente o una password errati, viene visualizzato l'errore.

Dopo aver cercato su Google questo problema, mi è stato consigliato di commentare le seguenti righe in:

App \ code \ Core \ Mage \ Core \ modello \ Session \ astratta \ Varien.php

/* to solve login issue */
  /*if (!$cookieParams['httponly']) {
  unset($cookieParams['httponly']);
  if (!$cookieParams['secure']) {
  unset($cookieParams['secure']);
  if (!$cookieParams['domain']) {
  unset($cookieParams['domain']);
  }
  }
  }

if (isset($cookieParams['domain'])) {
  $cookieParams['domain'] = $cookie->getDomain();*/ //I have commented these lines

E per alcune versioni precedenti di seguito è stato raccomandato nello stesso file.

$cookieParams = array(           
    'lifetime' => $cookie->getLifetime(),           
    'path'     => $cookie->getPath(),           
    //'domain'   => $cookie->getConfigDomain()           
    //'secure'   => $cookie->isSecure(),           
    //'httponly' => $cookie->getHttponly()       
);
  }*/

Anche dopo, non ho potuto accedere ad admin. È com'era. Qualcuno ha affrontato questo problema? C'è qualche altra soluzione a questo problema?

(Ho provato a cancellare cache e sessione tramite ftp).


potresti cancellare la cache / cookie del browser e riprovare?
alamelu,

Copia i file core in app/code/local/Mage/Core..blahblahper la modifica in modo che Magento sovrascriva il file core. Usa anche git per il controllo della versione, è una manna dal cielo.
Chris K,


1
Se stai utilizzando Chrome, digita F12> Risorse> Cookie> Fai clic con il pulsante destro del mouse sul dominio> Cancella.
Rybo111,

Risposte:


122

Smetti di modificare il codice principale in questo modo: potrebbe risolvere temporaneamente un problema, ma potrebbe creare problemi futuri che saranno quasi impossibili da rintracciare.

Esistono diversi problemi che causano il comportamento di accesso dell'amministratore senza errori che stai riscontrando, ma tornano tutti a Magento non essendo in grado di impostare o leggere il cookie di sessione. Magento usa le sessioni per passare messaggi di errore tra le pagine, ecco perché non vedi un messaggio di errore. Magento utilizza anche sessioni per memorizzare il valore "è connesso", quindi non impostare sessioni provoca anche il comportamento dell'errore principale.

Le possibili cause includono

  • Mancata corrispondenza tra l'ora del computer locale e l'ora del server, causando l'invalidazione immediata dei cookie. Assicurarsi che l'ora del server sia corretta.

  • Autorizzazioni errate attivate var/session, che impediscono il salvataggio dei file di sessione

  • Configurazione errata del database / redis / altra memoria di sessione, impedendo il salvataggio dei valori di sessione

  • Un modulo sta istanziando le sessioni all'inizio , impedendo l'impostazione dei nomi di sessione corretti

  • Sei uno sviluppatore che utilizza più URL e hai più domini cookie

  • Un altro sviluppatore ha in qualche modo modificato app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, creando un bug difficile da rintracciare

  • Il dominio dei cookie in System -> Configuration -> Web -> Session Cookie Managementnon corrisponde al dominio del sito effettivo.

  • Stai utilizzando il localhostdominio del tuo server e stai utilizzando una versione di webkit che presenta problemi / bug nella configurazione dei cookie localhostin alcune situazioni.

La soluzione a breve termine è semplicemente eliminare i cookie per il dominio. Questo è abbastanza spesso per risolvere il problema. Se persiste, capire quale delle ragioni sopra è la causa del tuo errore e prendere provvedimenti per risolverlo (correggere le autorizzazioni, ecc.)


7
Puoi usare il sys di n98-magerun: controlla il comando per trovare problemi con il dominio dei cookie e l'URL di base. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@Alan Storm, grazie per la chiara spiegazione. Ho risolto il mio problema. Nel mio caso, la ragione del problema è la terza.
SIBHI S

4
Nel mio caso, non c'era abbastanza spazio su disco sul server. Quindi potresti voler aggiungere questo come possibile causa.
Simon,

@cmuench Eseguo quel comando e non capisco i risultati: Archivio BaseURL non sicuro non valido: nome host errato predefinito configurato. Il nome host deve contenere un punto ✖ Store BaseURL non sicuro non valido: francese Nome host errato configurato. Il nome host deve contenere un punto ✖ Store BaseURL non sicuro non valido: sot_eng Nome host errato configurato. Il nome host deve contenere un punto ✖ Store BaseURL non sicuro non valido: sot_fra Nome host errato configurato. Il nome host deve contenere un punto ✔ Dominio cookie (sicuro) dello Store: impostazione predefinita OK - Nessun dominio impostato Tutti i domini Cookie hanno lo stesso aspetto Ok e Nessun dominio impostato
Denisa

@Denisa Avrai un po 'più di fortuna se provi a farlo come una nuova domanda.
Alan Storm,

33

Sto riscontrando gli stessi sintomi su alcune installazioni di Magento (non solo 1.9). Nel mio caso, succede solo in Chrome. Lo sto risolvendo accedendo a Firefox / Safari / Opera e cambiando 'Usa solo HTTP' su 'No' in 'Gestione dei cookie di sessione' delle impostazioni 'Web'.

Guarda lo screenshot del backend di Magento con le impostazioni dei cookie


3
Questo mi ha aiutato a far funzionare il mio ambiente di sviluppo in Chrome, ma ricordati di non utilizzare queste impostazioni in produzione in quanto apre un'intera classe di vulnerabilità della sicurezza.
Stephen Crosby,

dov'è la sezione Gestione dei cookie di sessione?
Aryeh Armon,

1
Controlla anche il tuo dominio dei cookie: stavo sviluppando localmente e questo si è rivelato essere il mio problema.
Phil Birnie,

Mi ha aiutato molto! Non ho mai saputo che questo accade solo in Chrome. Haha!
jehzlau,

4
Per impostare Use HTTP onlya Noche non hanno accesso pannello di amministrazione. È possibile avviare direttamente questa query SQL: UPDATE __DATABASE_NAME__. core_config_dataSET value= '0' DOVE core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig,

11

Ho avuto anche questo problema. Le sessioni risultanti non potevano essere scritte var/session, anche se la directory stessa è impostata su 0777. Magento ha creato file di sessione, ma sono rimasti tutti zero byte.

Cambiare stoccaggio sessione dal filesal dbrisolto il problema per me.


questo funziona! Non capisco perché Magento non scriva le sessioni e la cache sui file. Le autorizzazioni sono corrette!
Michelangelo,

Se ricordo la mia situazione, era che il disco era pieno o che la directory della sessione conteneva troppi file.
Giel Berkers,

Questo funziona per me !!
Ner,

Nel mio caso: problema con la modifica dell'archiviazione della sessione da db a file.
akgola,

7
  1. Apri la tua directory di installazione di Magento. Individua e apri il file index.php.
  2. Cerca segnalazione errori (E_ALL | E_STRICT); codice.
  3. Commentalo così:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. E usa invece il seguente codice:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Rimuovi il commento rimuovendo il segno #, quindi sembra che:

    ini_set('display_errors', 1);

  6. Salvare questo file e caricarlo sul server. Ricarica la pagina del tuo sito web per vedere gli errori.


6

Un altro possibile motivo: hard disk / volume / quota è pieno e quindi i dati della sessione non possono essere scritti su disco. Può sembrare improbabile, ma è successo solo la seconda volta a me e ci è voluto un po 'per capire.

Non ho abbastanza reputazione per commentare, ma @Alan Storm, forse vuoi prenderlo nella tua eccellente lista.


6

Di recente ho avuto lo stesso problema e un semplice trucco ha funzionato per me. Anche questo è per le persone che non possono accedere alla dashboard su Google Chrome . Se riesci a lavorare su Mozilla Firefox, ti preghiamo di farlo perché suppongo che questo problema non sia persistente su Mozilla Firefox.

Quindi la soluzione per Chrome è:

Vai a Sistema-> Configurazione-> Web . Espandi la scheda Non sicuro e Sicuro . Modificare l'URL di base in http://127.0.0.1/[Your folder name]se si utilizza localhost o modificarlo nell'URL del sito attraverso il quale si accede al frontend. Ho dovuto effettuare il login due volte per accedere alla Dashboard da quando ho inserito i dettagli per la prima volta, si aggiorna e torna alla stessa pagina in cui l'hai menzionata come loop.


5

Apri phpMyAdmin dal tuo host e prova una volta questo comando sql.

Esegui questo SQL:

SET FOREIGN_KEY_CHECKS=0;
UPDATE core_store SET store_id = 0 WHERE code='admin';
UPDATE core_store_group SET group_id = 0 WHERE name='Default';
UPDATE core_website SET website_id = 0 WHERE code='admin';
UPDATE customer_group SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';SET FOREIGN_KEY_CHECKS=1;

Ora l'amministratore può accedere.

Si prega di seguire questo:

La pagina Amministratore mostra 404 pagine non trovate


1
non dimenticare di aprire in una finestra anonima o un altro browser per rimuovere le sessioni
Martin

3

Ho avuto lo stesso problema e l'ho risolto eliminando tutti i file in / var / session. Penso che sia perché troppe sessioni in Magento!


3

L'elenco delle tempeste di allarme è corretto e dettagliato. Ecco un paio di casi aggiuntivi.

  1. In vagabondo, controlla anche l'autorizzazione var/sessionsulla macchina host
    (problemi di montaggio)
  2. Controlla se il tuo disco è pieno o troppi file in var / session
  3. Esegui n98-magerun.phar sys:check(rileva problemi, incluso il dominio dei cookie)
  4. Cambia sessione nel database modificando local.xml. Escluderà la maggior parte dei problemi di autorizzazione utilizzando insidie<global>

    <session_save><![CDATA[db]]></session_save>

Puoi anche variare le estensioni di terze parti (firewall / estensioni di sicurezza), ad esempio https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 ti mette sulla lista nera se ci provi troppe volte.

Può accadere se la sessione in origine non funziona per problemi di autorizzazione ma continua a non riuscire anche dopo aver risolto il problema originale

Nel tuo caso particolare tieni d'occhio l' admin_session_user_login_successevento poiché la maggior parte dei moduli di sicurezza / firewall utilizza questo evento. Tieni particolarmente d'occhio se la variabile $_SESSION['admin']viene resettata dagli osservatori


2

È anche importante che sia presente una chiave del modulo, altrimenti il ​​modulo non verrà elaborato.

<?php echo $this->getBlockHtml('formkey'); ?>

2

Una soluzione semplice a questo problema è utilizzare http://127.0.0.1 come nome host anziché localhost.

Poiché il problema è che non è possibile accedere al proprio amministratore, è necessario modificare gli URL di base sicuri e non sicuri nella scheda del database: core_config_data

Questo farà convalidare anche il tuo baseurl con il sistema di n98-magerun: check


2

Se si sta sviluppando localhoste su cui è stato impostato o modificato il nome di dominio localhost, aggiornare invece core_config_datai nomi di dominio della tabella del database 127.0.0.1. Per esempioUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Inoltre, puoi aggiornare la password nel database se tutto il resto dall'alto non ha funzionato e hai bisogno di un accesso disperato:

UPDATE admin_user SET password=CONCAT(MD5('qXpassword'), ':qX') WHERE username=‘user’;

sostituire le parole utente e password in base alle proprie esigenze.


2

Prima di tutto prova a svuotare la cache, penso e se questo non funziona, prova a fare chmod 700 nella tua cartella var.


1

È possibile modificare il browser potrebbe essere questo lavoro per me. Quando arriva questo errore, ho cambiato il browser Chrome in Firefox e funziona.


0

La stessa cosa è successa con me qualche tempo fa e il mio problema è venuto dalla sessione. Non avevo abbastanza spazio DISK per creare sessioni e cache var/. Ho rimosso alcune cose e tutto ha funzionato dopo. Forse aiuterà qualcuno.

Saluti


0

Prova a svuotare la cache svuotando la cartella "var / cache" e "var / session", questo mi ha risolto.

Ho anche dovuto riavviare il server web dopo di esso una volta.

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.