Magento 1.9 Nie mogę się zalogować do panelu administracyjnego!


99

Zainstalowałem Magento 1.9 . Przez tydzień działało dobrze. Nagle wczoraj, kiedy próbowałem zalogować się do panelu administracyjnego Magento i napisałem usernamei passwordkliknąłem przycisk Zaloguj i nic się nie stało. Strona odświeża się i to wszystko. Bez błędów i innych komunikatów.

Jeśli podałem nieprawidłową nazwę użytkownika lub hasło, pokazuje błąd.

Po przejrzeniu Google'a na ten temat zalecono mi skomentowanie następujących wierszy w:

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

I dla niektórych starszych wersji poniżej został zalecony w tym samym pliku.

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

Nawet po tym nie mogłem zalogować się do administratora. Tak jest. Ktoś napotkał ten problem? Czy istnieje inne rozwiązanie tego problemu?

(Próbowałem wyczyścić pamięć podręczną i sesję przez ftp).


czy możesz wyczyścić pamięć podręczną / plik cookie przeglądarki i spróbować ponownie?
alamelu

Skopiuj pliki podstawowe do app/code/local/Mage/Core..blahblahedycji, aby Magento przesłaniało plik podstawowy. Użyj także git do kontroli wersji, to dar niebios.
Chris K

@SHIBHI S, zapoznaj się z tym linkiem magentolearning.com/can-not-login-magento-admin-panel
Manoj Kumar

1
Jeśli używasz Chrome, naciśnij klawisz F12> Zasoby> Pliki cookie> Kliknij domenę prawym przyciskiem myszy> Wyczyść.
rybo111

Odpowiedzi:


122

Przestań modyfikować kod podstawowy w ten sposób - może tymczasowo rozwiązać problem, ale może stworzyć przyszłe problemy, których znalezienie będzie prawie niemożliwe.

Istnieje wiele różnych problemów, które powodują bezbłędne zachowanie logowania administratora, ale wszystkie one wracają do Magento, ponieważ nie mogą ustawić ani odczytać pliku cookie sesji. Magento używa sesji do przekazywania komunikatów o błędach między stronami - dlatego nie pojawia się komunikat o błędzie. Magento używa również sesji do przechowywania wartości „jest zalogowany”, więc brak ustawienia sesji powoduje również zachowanie podstawowego błędu.

Możliwe przyczyny to

  • Niezgodność czasu lokalnego komputera z czasem serwera, powodując natychmiastowe unieważnienie pliku cookie. Upewnij się, że czas na serwerze jest prawidłowy.

  • Nieprawidłowe uprawnienia var/session, uniemożliwiające zapisywanie plików sesji

  • Niepoprawna konfiguracja bazy danych / redis / innej pamięci sesji, uniemożliwiająca zapisanie wartości sesji

  • Moduł tworzy sesje zbyt wcześnie , zapobiegając ustawianiu prawidłowych nazw sesji

  • Jesteś programistą używającym wielu adresów URL i posiadasz wiele domen plików cookie

  • Inny programista jakoś zmodyfikował app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, tworząc trudny do wyśledzenia błąd

  • Domena cookie w System -> Configuration -> Web -> Session Cookie Managementnie pasuje do rzeczywistej domeny witryny.

  • Używasz localhostdomeny jako domeny serwera i używasz wersji pakietu, który ma problemy z ustawieniem plików cookie localhostw niektórych sytuacjach.

Krótkoterminową poprawką jest po prostu usunięcie pliku cookie dla domeny. To często wystarcza, aby rozwiązać problem. Jeśli problem będzie się powtarzał, dowiedz się, który z powyższych powodów jest przyczyną błędu, i podejmij kroki w celu jego rozwiązania (napraw uprawnienia itp.)


7
Możesz użyć polecenia sys n98-magerun: check, aby znaleźć problemy z domeną plików cookie i podstawowym adresem URL. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@Alan Storm, dziękuję za jasne wyjaśnienie. Rozwiązałem mój problem. W moim przypadku przyczyną wydania jest 3. pozycja.
SIBHI S

4
W moim przypadku na serwerze nie było wystarczającej ilości miejsca na dysku. Możesz więc dodać to jako możliwą przyczynę.
Simon

@cmuench Uruchomiłem to polecenie i nie rozumiem wyników: Niepoprawny niezabezpieczony BaseURL Store: domyślnie skonfigurowano niepoprawną nazwę hosta. Nazwa hosta musi zawierać kropkę ✖ Niepoprawny niezabezpieczony BaseURL Store: francuski Niepoprawna nazwa hosta skonfigurowana. Nazwa hosta musi zawierać kropkę ✖ Niepoprawny niezabezpieczony BaseURL Store: sot_pl Niepoprawna nazwa hosta skonfigurowana. Nazwa hosta musi zawierać kropkę ✖ Niepoprawny niezabezpieczony BaseURL Store: sot_fra Skonfigurowano nieprawidłową nazwę hosta. Nazwa hosta musi zawierać kropkę ✔ Domena Cookie (bezpieczna) Store: domyślnie OK - brak zestawu domen Wszystkie domeny Cookie wyglądają tak samo Ok i brak zestawu domen
Denisa

@Denisa Będziesz miał trochę więcej szczęścia, jeśli spróbujesz zadać to pytanie jako nowe pytanie.
Alan Storm,

33

Mam te same objawy na niektórych instalacjach Magento (nie tylko 1.9). W moim przypadku dzieje się tak tylko w Chrome. Naprawiam to, logując się w przeglądarce Firefox / Safari / Opera i zmieniając opcję „Używaj tylko HTTP” na „Nie” w „Zarządzaniu plikami cookie sesji” w ustawieniach „WWW”.

Zobacz zrzut ekranu zaplecza Magento z ustawieniami plików cookie


3
Pomogło mi to uruchomić moje środowisko programistyczne w Chrome, ale pamiętaj, aby nie używać tych ustawień w środowisku produkcyjnym, ponieważ otwiera ono całą klasę luk w zabezpieczeniach.
Stephen Crosby

gdzie jest sekcja Zarządzanie plikami cookie sesji?
Aryeh Armon

1
Sprawdź także swoją domenę plików cookie - rozwijałem się lokalnie i to był mój problem.
Phil Birnie,

Bardzo mi pomogło! Nigdy nie wiedziałem, że dzieje się tak tylko w Chrome. Ha ha!
jehzlau

4
Aby ustawić Use HTTP onlysię Nobez dostępu do panelu administracyjnego. Możesz uruchomić bezpośrednio to zapytanie SQL: UPDATE __DATABASE_NAME__. core_config_dataSET value= „0” GDZIE core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig,

11

Też miałem ten problem. Okazało się, że nie można zapisać sesji var/session, nawet jeśli sam katalog jest ustawiony na 0777. Magento utworzyło pliki sesji, ale wszystkie pozostały zero bajtów.

Zmiana pamięci sesji z filesna dbrozwiązała dla mnie problem.


to działa! Nie rozumiem, dlaczego Magento nie zapisuje sesji i nie buforuje plików. Uprawnienia są poprawne!
Michelangelo,

Jeśli pamiętam swoją sytuację, to albo dysk był zapełniony, albo katalog sesji miał za dużo plików.
Giel Berkers

Ten działa dla mnie !!
Ner

W moim przypadku: zmiana przechowywania sesji z db na pliki rozwiązała problem.
akgola

7
  1. Otwórz katalog instalacyjny Magento. Znajdź i otwórz plik index.php.
  2. Wyszukaj raportowanie błędów (E_ALL | E_STRICT); kod.
  3. Skomentuj to w ten sposób:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. I zamiast tego użyj następującego kodu:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Odznacz to, usuwając znak #, więc wygląda to tak:

    ini_set('display_errors', 1);

  6. Zapisz ten plik i prześlij na serwer. Załaduj stronę ponownie, aby zobaczyć błędy.


6

Inna możliwa przyczyna: dysk twardy / wolumin / przydział jest pełny, więc danych sesji nie można zapisać na dysku. Może się to wydawać mało prawdopodobne, ale zdarzyło mi się to po raz drugi i zajęło mi to trochę czasu.

Nie mam wystarczającej reputacji, aby komentować, ale @Alan Storm, może chcesz wziąć to na swoją doskonałą listę.


6

Ostatnio miałem ten sam problem i zadziałała dla mnie prosta sztuczka. Dotyczy to również osób, które nie mają dostępu do pulpitu nawigacyjnego w Google Chrome . Jeśli możesz pracować w przeglądarce Mozilla Firefox, zrób to, ponieważ myślę, że ten problem nie występuje w Firefoksie Mozilla.

Tak więc rozwiązaniem dla chromu jest:

Idź do System-> Konfiguracja-> Internet . Rozwiń kartę Niezabezpieczone i bezpieczne . Zmień podstawowy adres URL na, http://127.0.0.1/[Your folder name]jeśli używasz localhost lub zmień go na adres URL witryny, przez który uzyskujesz dostęp do interfejsu. Musiałem zalogować się dwa razy, aby dostać się do deski rozdzielczej, ponieważ kiedy wprowadziłem dane po raz pierwszy, odświeża się i wraca do tej samej strony, o której mówiłeś, że jest zapętlona.


5

Otwórz phpMyAdmin na swoim hoście spróbuj raz tego polecenia SQL.

Uruchom ten 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;

Teraz administrator może się zalogować.

Postępuj zgodnie z tym:

Strona administratora pokazuje 404 strony nie znalezione


1
nie zapomnij otworzyć w anonimowym oknie lub innej przeglądarce do usuwania sesji
Martin

3

Miałem ten sam problem i rozwiązałem go, usuwając wszystkie pliki w / var / session. Myślę, że to dlatego, że zbyt wiele sesji w Magento!


3

Lista burz alarmowych jest poprawna i szczegółowa. Oto kilka dodatkowych przypadków.

  1. W włóczęgach sprawdź uprawnienia również var/sessionna komputerze hosta
    (problemy z montażem)
  2. Sprawdź, czy dysk jest pełny lub czy jest zbyt wiele plików w var / session
  3. Uruchom n98-magerun.phar sys:check(wykrywa problemy, w tym domenę plików cookie)
  4. Zmień sesję na bazę danych, edytując plik local.xml. Wykluczy to większość problemów związanych z uprawnieniami przy użyciu insidie<global>

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

Również zmieniać rozszerzeń stron trzecich (rozszerzenia firewall / bezpieczeństwa), na przykład https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 daje na czarnej liście, jeśli spróbujesz zbyt wiele razy.

Może się to zdarzyć, jeśli twoja sesja początkowo nie działa w przypadku problemów z uprawnieniami, ale nadal nie powiedzie się, nawet po naprawieniu pierwotnego problemu

W twoim szczególnym przypadku miej oko na admin_session_user_login_successzdarzenie, ponieważ większość modułów bezpieczeństwa / zapory sieciowej używa tego zdarzenia. Szczególnie uważaj, jeśli zmienna $_SESSION['admin']jest resetowana przez obserwatorów


2

Ważne jest również, aby mieć obecny klucz formularza, w przeciwnym razie formularz nie zostanie przetworzony.

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

2

Prostym rozwiązaniem tego problemu jest użycie http://127.0.0.1 jako nazwy hosta zamiast localhost.

Ponieważ problem polega na tym, że nie możesz zalogować się do administratora, powinieneś zmienić bezpieczne i niezabezpieczone podstawowe adresy URL w bazie danych tabel: core_config_data

Spowoduje to również sprawdzenie twojego baseurl w sys n98-magerun: check


2

Jeśli rozwijasz się localhosti ustawiłeś lub zmieniłeś nazwę domeny na localhost, zaktualizuj core_config_datanazwy domenowe tabeli bazy danych na 127.0.0.1. Na przykładUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Możesz także zaktualizować hasło do bazy danych, jeśli wszystko inne z powyższego nie działało i potrzebujesz desperackiego dostępu:

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

zamień słowa użytkownika i hasła zgodnie z własnymi potrzebami.


2

Przede wszystkim spróbuj wyczyścić pamięć podręczną, myślę, a jeśli to nie zadziała, spróbuj zrobić chmod 700 w folderze var.


1

Możesz zmienić swoją przeglądarkę, może to dla mnie ta praca. Gdy pojawia się ten błąd, zmieniłem chrome przeglądarki na Firefox i działa.


0

To samo stało się ze mną jakiś czas temu i mój problem pochodzi z sesji. Nie miałem wystarczającej ilości miejsca na DYSKU, aby utworzyć sesje i pamięć podręczną var/. Usunąłem trochę rzeczy i wszystko działało później. Może to komuś pomoże.

Twoje zdrowie


0

Spróbuj wyczyścić pamięć podręczną, opróżniając folder „var / cache” i „var / session”, to dla mnie rozwiązało.

Musiałem też raz ponownie uruchomić serwer.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.