Magento 1.9 Kann mich nicht im Admin-Bereich anmelden!

99

Ich habe Magento 1.9 installiert . Es hat eine Woche lang gut funktioniert. Plötzlich gestern, als ich versuchte, mich im Magento Admin Panel anzumelden, und ich tippte usernameund passwordklickte auf die Schaltfläche Anmelden und nichts passierte. Die Seite wird aktualisiert und das ist alles. Kein Fehler oder andere Meldungen.

Wenn ich einen falschen Benutzernamen oder ein falsches Passwort eingegeben habe, wird ein Fehler angezeigt.

Nachdem ich über dieses Problem gegoogelt habe, wurde mir empfohlen, die folgenden Zeilen zu kommentieren:

app \ code \ core \ mage \ core \ model \ session \ abstract \ 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

Und für einige ältere Versionen unten wurde in der gleichen Datei empfohlen.

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

Auch danach konnte ich mich nicht in admin einloggen. Es ist so wie es war. Jemand mit diesem Problem konfrontiert? Gibt es eine andere Lösung für dieses Problem?

(Ich habe versucht, Cache und Sitzung über FTP zu löschen).

SIBHI S
quelle
Könnten Sie bitte den Browser-Cache / Cookie leeren und es erneut versuchen?
Alamelu
Kopieren Sie die Core-Dateien zum app/code/local/Mage/Core..blahblahBearbeiten nach, damit Magento die Core-Datei überschreibt. Verwenden Sie Git auch für die Versionskontrolle, es ist ein Geschenk des Himmels.
Chris K
@ SHIBHI S, verweisen Sie auf diesen Link magentolearning.com/can-not-login-magento-admin-panel
Manoj Kumar
1
Wenn Sie Chrome verwenden, drücken Sie F12> Ressourcen> Cookies> Klicken Sie mit der rechten Maustaste auf Ihre Domain> Löschen.
Rybo111

Antworten:

122

Hören Sie auf, den Kerncode so zu ändern - es kann vorübergehend ein Problem lösen, aber es kann zu zukünftigen Problemen führen, die fast unmöglich aufzuspüren sind.

Es gibt eine Reihe verschiedener Probleme , die zu dem fehlerfreien Anmeldeverhalten des Administrators führen. Sie gehen jedoch alle auf Magento zurück, da das Sitzungscookie nicht gesetzt oder gelesen werden kann. Magento verwendet Sitzungen, um Fehlermeldungen zwischen Seiten zu übertragen. Aus diesem Grund wird keine Fehlermeldung angezeigt. Magento verwendet auch Sitzungen, um den Wert "angemeldet" zu speichern. Wenn Sie also keine Sitzungen festlegen, wird auch das Hauptfehlerverhalten verursacht.

Mögliche Ursachen sind

  • Zeitunterschied zwischen lokalem Computer und Serverzeit, was zu einer sofortigen Ungültigkeit der Cookies führt. Stellen Sie sicher, dass Ihre Serverzeit korrekt ist.

  • Falsche Berechtigungen für var/session, sodass Sitzungsdateien nicht gespeichert werden können

  • Falsche Konfiguration von Datenbank / Redis / anderem Sitzungsspeicher, wodurch das Speichern von Sitzungswerten verhindert wird

  • Ein Modul instanziiert Sitzungen zu früh und verhindert, dass die richtigen Sitzungsnamen festgelegt werden

  • Sie sind ein Entwickler, der mehrere URLs verwendet und über mehrere Cookie-Domänen verfügt

  • Ein anderer Entwickler hat es irgendwie modifiziert app\code\core\Mage\Core\Model\Session\Abstract\Varien.phpund einen schwer auffindbaren Fehler verursacht

  • Die Cookie-Domain in System -> Configuration -> Web -> Session Cookie Managementstimmt nicht mit der tatsächlichen Site-Domain überein.

  • Sie verwenden die localhostals Ihre Serverdomäne und verwenden eine Version des Webkits, bei der localhostin bestimmten Situationen Probleme beim Setzen von Cookies auftreten .

Die kurzfristige Lösung besteht darin, nur Ihren Cookie für die Domain zu löschen. Das ist oft genug, um das Problem zu lösen. Wenn dies weiterhin der Fall ist, ermitteln Sie, welcher der oben genannten Gründe für Ihren Fehler verantwortlich ist, und ergreifen Sie entsprechende Maßnahmen, um diesen zu beheben (Berechtigungen korrigieren usw.).

Alan Storm
quelle
7
Sie können den Befehl sys: check von n98-magerun verwenden, um Probleme mit der Cookie-Domain und der Basis-URL zu finden. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench
1
@ Alan Storm, vielen Dank für die klare Erklärung. Ich habe mein Problem gelöst. In meinem Fall ist der Grund der Ausgabe der dritte.
SIBHI S
4
In meinem Fall war nicht genügend Speicherplatz auf dem Server. Vielleicht möchten Sie dies als mögliche Ursache hinzufügen.
Simon
@cmuench Ich führe diesen Befehl aus und verstehe die Ergebnisse nicht: Ungültiger unsicherer BaseURL-Speicher: Standard Falscher Hostname konfiguriert. Hostname muss einen Punkt enthalten. ✖ Ungültiger unsicherer BaseURL-Speicher: französisch Falscher Hostname konfiguriert. Der Hostname muss einen Punkt enthalten. ✖ Ungültiger unsicherer BaseURL-Speicher: sot_eng Falscher Hostname konfiguriert. Hostname muss einen Punkt enthalten. ✖ Ungültiger unsicherer BaseURL-Speicher: sot_fra Falscher Hostname konfiguriert. Hostname muss einen Punkt enthalten ✔ Cookie-Domain (sicher) des Speichers: Standard OK - Keine Domain festgelegt Alle Cookie-Domains sehen gleich aus Ok und Keine Domain festgelegt
Denisa
@Denisa Du wirst ein bisschen mehr Glück haben, wenn du versuchst, das als neue Frage zu stellen.
Alan Storm
33

Ich habe die gleichen Symptome bei einigen Magento-Installationen (nicht nur 1.9). In meinem Fall passiert es nur in Chrome. Ich behebe dies, indem ich mich in Firefox / Safari / Opera anmelde und in den Einstellungen unter "Web" die Option "Nur HTTP verwenden" in "Sitzungscookies-Verwaltung" in "Nein" ändere.

Siehe Magentos Backend-Screenshot mit Cookie-Einstellungen

DmitryR
quelle
3
Dies hat mir geholfen, meine Entwicklungsumgebung in Chrome zum Laufen zu bringen. Denken Sie jedoch daran, diese Einstellungen nicht in der Produktion zu verwenden, da dies eine ganze Klasse von Sicherheitslücken aufwirft.
Stephen Crosby
Wo befindet sich der Abschnitt zur Verwaltung von Sitzungscookies?
Aryeh Armon
1
Überprüfen Sie auch Ihre Cookie-Domain - ich habe sie lokal entwickelt und es stellte sich heraus, dass dies mein Problem war.
Phil Birnie
Hat mir viel geholfen! Ich wusste nie, dass dies nur in Chrome passiert. Haha!
Jehzlau
4
So stellen Sie Use HTTP onlyauf , Noohne Admin - Panel - Zugang. Sie können diese SQL-Abfrage direkt starten: UPDATE __DATABASE_NAME__. core_config_dataSET value= '0' WO core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig
11

Ich hatte auch dieses Problem. Es wurden keine Sitzungen erstellt, in die nicht geschrieben werden konnte var/session, obwohl das Verzeichnis selbst auf festgelegt ist 0777. Magento erstellte Sitzungsdateien, aber alle blieben null Bytes.

Das Ändern des Sitzungsspeichers von, filesum dbdas Problem für mich zu lösen.

Giel Berkers
quelle
das funktioniert! Ich verstehe nicht, warum Magento die Sitzungen nicht schreibt und in Dateien zwischenspeichert. Die Berechtigungen sind korrekt!
Michelangelo
Wenn ich mich an meine Situation erinnere, war entweder die Festplatte voll oder das Sitzungsverzeichnis enthielt zu viele Dateien.
Giel Berkers
Dieser arbeitet für mich !!
Ner
In meinem Fall: Das Ändern des Sitzungsspeichers von "db" in "files" wurde behoben.
Akgola
7
  1. Öffnen Sie Ihr Magento-Installationsverzeichnis. Suchen und öffnen Sie die Datei index.php.
  2. Suche nach error_reporting (E_ALL | E_STRICT); Code.
  3. Kommentiere es so aus:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. Verwenden Sie stattdessen den folgenden Code:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Entfernen Sie das Kommentarzeichen, indem Sie das # -Zeichen entfernen. So sieht es aus:

    ini_set('display_errors', 1);

  6. Speichern Sie diese Datei und laden Sie sie auf den Server hoch. Laden Sie die Seite Ihrer Website neu, um Fehler anzuzeigen.

Randhir Yadav
quelle
6

Ein weiterer möglicher Grund: Festplatte / Volume / Quota ist voll und die Sitzungsdaten können nicht auf die Festplatte geschrieben werden. Das mag unwahrscheinlich erscheinen, ist mir aber erst beim zweiten Mal passiert und es hat eine Weile gedauert, bis ich es herausgefunden habe.

Ich habe nicht genug Ruf, um einen Kommentar abzugeben, aber @Alan Storm, vielleicht möchten Sie dies in Ihre ausgezeichnete Liste aufnehmen.

johjoh
quelle
6

Ich hatte vor kurzem das gleiche Problem und ein einfacher Trick funktionierte für mich. Dies gilt auch für Personen, die nicht auf das Dashboard von Google Chrome zugreifen können . Wenn Sie mit Mozilla Firefox arbeiten können, tun Sie dies bitte, da dieses Problem unter Mozilla Firefox vermutlich nicht weiter besteht.

Die Lösung für Chrom lautet also:

Goto System-> Configuration-> Web . Erweitern Sie die Registerkarte Unsicher und sicher. Ändern Sie die Basis-URL in, http://127.0.0.1/[Your folder name]wenn Sie localhost verwenden, oder in Ihre Site-URL, über die Sie auf das Frontend zugreifen. Ich musste mich zweimal anmelden , um zum Dashboard zu gelangen, da bei der erstmaligen Eingabe der Details nur eine Aktualisierung durchgeführt wurde und die von Ihnen als Endlosschleife erwähnte Seite wieder aufgerufen wurde.

rash.tay
quelle
5

Öffnen Sie Ihren phpMyAdmin von Ihrem Host aus und versuchen Sie es einmal mit diesem SQL-Befehl.

Führen Sie diese SQL aus:

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;

Jetzt kann sich der Administrator anmelden.

Bitte befolgen Sie diese:

Die Admin-Seite zeigt 404 nicht gefundene Seiten

Teja Bhagavan Kollepara
quelle
1
Vergessen Sie nicht, in einem anonymen Fenster oder einem anderen Browser zu öffnen, um Sitzungen zu entfernen
Martin
3

Ich hatte das gleiche Problem und löste es, indem ich alle Dateien in / var / session löschte. Ich denke, es ist zu viele Sitzung in Magento!

user3213786
quelle
3

Die Alarmsturmliste ist korrekt und detailliert. Hier sind einige zusätzliche Fälle.

  1. Überprüfen Sie in vagrant auch die Berechtigung var/sessionauf dem Hostcomputer
    (Montageprobleme)
  2. Überprüfen Sie, ob Ihre Festplatte voll oder zu viele Dateien in var / session sind
  3. Ausführen n98-magerun.phar sys:check(behebt Probleme, einschließlich Cookie-Domain)
  4. Ändern Sie die Sitzung in die Datenbank, indem Sie local.xml bearbeiten. Durch die Verwendung von Insidie ​​werden die meisten Berechtigungsprobleme ausgeschlossen<global>

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

Auch von Erweiterungen von Drittanbietern variieren werden (Firewall / Sicherheitserweiterungen) zum Beispiel https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 bringt Sie auf der schwarzen Liste, wenn Sie zu oft versuchen.

Kann vorkommen, wenn Ihre Sitzung ursprünglich nicht für Berechtigungsprobleme geeignet ist, aber auch nach dem Beheben des ursprünglichen Problems weiterhin fehlschlägt

Behalten Sie in Ihrem speziellen Fall das admin_session_user_login_successEreignis im Auge , da die meisten Sicherheits- / Firewall-Module dieses Ereignis verwenden. Achten Sie besonders darauf, wenn die Variable $_SESSION['admin']von Beobachtern zurückgesetzt wird

zainengineer
quelle
2

Es ist auch wichtig, dass Sie einen Formularschlüssel haben, sonst wird Ihr Formular nicht verarbeitet.

<?php echo $this->getBlockHtml('formkey'); ?>
Tahir Yasin
quelle
2

Eine einfache Lösung für dieses Problem ist die Verwendung von http://127.0.0.1 als Hostname anstelle von localhost.

Da das Problem darin besteht, dass Sie sich nicht bei Ihrem Administrator anmelden können, sollten Sie die sicheren und unsicheren Basis-URLs in der Datenbanktabelle ändern: core_config_data

Hierdurch wird auch Ihr Baseurl mit dem sys: check von n98-magerun validiert

Munkholm
quelle
2

Wenn Sie am entwickeln localhostund Ihren Domänennamen auf festgelegt oder geändert haben localhost, aktualisieren Sie stattdessen die core_config_dataDomänennamen der Datenbanktabelle auf 127.0.0.1. Z.BUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";

Jonathan
quelle
2

Sie können auch das Kennwort in der Datenbank aktualisieren, wenn alles andere von oben nicht funktioniert hat und Sie verzweifelten Zugriff benötigen:

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

Ersetzen Sie Benutzer- und Kennwortwörter entsprechend Ihren Anforderungen.

Claudiu Creanga
quelle
2

Versuchen Sie zunächst, Ihren Cache zu leeren, und wenn dies nicht funktioniert, versuchen Sie, chmod 700 in Ihrem var-Ordner zu erstellen.

Felix Schönherr
quelle
1

Sie können Ihren Browser ändern, möglicherweise funktioniert dies für mich. Wenn dieser Fehler auftritt, habe ich das Browser-Chrome in Firefox geändert und es funktioniert.

Ansari Ziyaurrahman
quelle
0

Das gleiche passierte vor einiger Zeit mit mir und mein Problem kam von der Sitzung. Ich hatte nicht genügend Speicherplatz auf der Festplatte , um die Sitzungen zu erstellen und den Cache zu speichernvar/ . Ich habe ein paar Sachen entfernt und alles hat danach funktioniert. Vielleicht hilft es jemandem.

Prost

Attila Naghi
quelle
0

Versuchen Sie, Ihren Cache zu leeren, indem Sie die Ordner "var / cache" und "var / session" leeren. Dies hat es für mich gelöst.

Ich musste auch den Webserver danach einmal neu starten.

Schwarz
quelle