2012-07-04 17 views
7

Kilka dni temu nie mogłem uzyskać dostępu do panelu administracyjnego na mojej stronie w oparciu o platformę prestashop. Po wprowadzeniu loginu i hasła, zostałem przekierowany do strony logowania i wszystko się powtórzyło.Prestashop nie mogę się zalogować w admin

Witryna jest hostowana na dedykowanym serwerze, na którym znajdują się również inne strony, które buduję w PrestaShop. Po próbie dostępu do panelu administracyjnego na tych stronach pojawia się ten sam "błąd".

Co sądzisz, co jest problemem?

Prestashop ver .: 1.4.7.3 i 1.4.8.2

Server: CentOS, PHP

Odpowiedz

19

Oto kilka rzeczy, które można spróbować:

1/wyczyścić pamięć podręczną przeglądarki i pliki cookie

2/Spróbuj użyć Firefoksa zamiast Chrome (co wydaje się mieć pewne nieoczekiwane problemy)

3/Sprawdź PS_SHOP_DOMAIN i PS_SHOP_DOMAIN_SSL w ps_configuration tabeli

4/Ręczne jasne smarty cache: usunąć wszystkie pliki z tools/smarty/compile i tools/smarty/cache

5/wyłączyć sprawdzanie IP w classes/Cookie.php (może to jest przyczyną wielu problemów z dynamiką IP): w isLoggedBack(), usuwać lub komentarz czwarty warunek:

AND (!isset($this->_content['remote_addr']) OR $this->_content['remote_addr'] == ip2long(Tools::getRemoteAddr()) OR !Configuration::get('PS_COOKIE_CHECKIP'))

6/Wykorzystaj czas krótszy ciasteczek (tj c wygaśnie mają problemy z najdłuższych ciasteczek czasowych): w classes/Cookie.php konstruktora

zestaw: $this->_expire = isset($expire) ? (int)($expire) : (time() + 3600);

zamiast $this->_expire = isset($expire) ? (int)($expire) : (time() + 1728000);

+4

PS 1.5; '5/Wyłącz test IP': zamiast ręcznie edytować podstawowe pliki, przejdź do' Administracja> Preferencje' i zmień 'Sprawdź adres IP w pliku cookie' na' nie' .. to samo na 6/ – UnLoCo

+0

+1 dla sugestia przeglądarki Firefox! Wygląda na to, że Chrome po prostu nic nie robi po pomyślnym zalogowaniu ... – Mediabeastnz

+0

# 5 rozwiązał to dla mnie - mam 2 połączenie z internetem, problem zdarzył się tylko na jednym z nich, błądzić po ... –

-1

Jeśli masz miejsce pracy, w którym można zalogowaniu. Może możesz skopiować użytkownika z pracy do niedziałającego, a jeśli to działa.

+0

nie dotyczy w żaden sposób – erm3nda

0

Istnieje kilka możliwych przyczyn, które mogłyby uniemożliwić działanie starych haseł. Jednym z nich może być zmiana twojego _COOKIE_KEY_.

Możesz spróbować użyć następującego skryptu do wygenerowania nowego skrótu hasła. Następnie można go zastąpić w bazie danych w tabeli xxxx_employee (gdzie xxxx_ jest prefiksem tabeli). Mam nadzieję, że to działa dla ciebie. W każdym razie: zachowaj kopię zapasową starych haszów.

Oto mały skrypt:

<?php 
require(dirname(__FILE__).'/config/config.inc.php'); 
echo Tools::encrypt($_REQUEST["pw"]); 

Nie zapomnij usunąć skrypt z serwera raz to zrobisz!

-1

wiem, że to jest stary, ale może komuś pomóc, włącz błędów przez otwarcie/config/config.inc.php.

Look dla linii:

ini_set('display_errors', 'off'); 

go zmienić na:

ini_set('display_errors', 'on'); 

EDIT: zmienił pozornie literówka

+0

Nie dotyczy to w żaden sposób. – erm3nda

1

Miałem ten sam problem, jak każdy inny.

Udało mi się zalogować przez IE, ale nie przez firefox.

Co zrobiłem, aby zaradzić temu problemowi, to przejdź do menedżera plików cookie i usuń wszystkie pliki cookie.

Wiem, że brzmi to banalnie, ale nic nie działało.

Szukałem nazwy mojej strony i patrzyłem na ciasteczko, było długie, ale już nie aktywne. Domyślam się, że uszkodziłem ciasteczko lub może pasują do IP, ponieważ w trakcie korzystania z panelu administracyjnego przełączyłem się na przeglądarkę telefonu, aby coś sprawdzić. Po powrocie wystarczy zapętlić stronę logowania, bez błędu.

Myślę, że muszą rozwiązać problem z punktu widzenia oprogramowania.

Bez względu na to, po usunięciu wszystkich plików cookie powiązanych z moją witryną, wróciłem bez problemu. Rozwiązał również problem, który miałem z www.mysite.com i mysite.com. Rozmawiałam z pomocą techniczną, ponieważ czasami to by działało, a innym razem nie.Być może plik cookie zapisuje również, który wariant www/non został użyty do dynamicznego linkowania. Mój DNS miał czas na rozwiązanie, a wsparcie techniczne było obwiniane, ale to nie było to.

Nie po prostu usuwaj pliki cookie, ręcznie usuwaj te pliki z witryny. Kiedy użyłem wyraźnych plików cookie, nie usunęło to wielu plików cookie. Znalazłem, że moja strona nadal ma 9 plików cookie ustawionych PO wyraźnych ciasteczkach. Czy to był mój błąd, czy coś innego, nie będę wiedział.

Życzę wszystkim powodzenia i podziękowania za inne sugestie. Jeśli wróci, przejdę do innych sugestii i zgłoś się ponownie.

-1

Czasami dostaję ten błąd, gdy skonfigurowany sklep domenę non-www i próbuję uzyskać dostęp do www, na przykład. Chciałbym, aby zmusić wszystkich użytkowników mieć tej samej zawartości, więc wymusić na .htaccess wpisać z www:

RewriteCond %{HTTP_HOST} !^www. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
+0

W przypadku, gdy domena nie ma znaczenia. Jeśli ta domena nie ma znaczenia, i tak to się nie rozwiąże. – erm3nda

-1

W przypadku, gdy zostały przeniesione PrestaShop z lokalnej wersji lub z innej domeny, w dodatku z klasyczny.

update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN"; 

update ps_configuration table set value="www.myshop.com" where name ="PS_SHOP_DOMAIN_SSL"; 

Sprawdź tabelę o nazwie ps_shop_url i zaktualizuj domain i domain_ssl Field i physical_url również.

Przykład:

update ps_shop_url set domain='www.myshop.com', domain_ssl='www.myshop.com', physical_url='/'; 
+0

Nie dotyczy to w żaden sposób – erm3nda

1

używam PrestaShop 1.4.8.2 Właśnie debuged moim biurze Login pętlę poprzez zmianę admin/login.php Wystarczy usunąć pozornie bezużytecznych warunki w następujący kod.

if ((empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) == 'off') 
    AND Configuration::get('PS_SSL_ENABLED')) 

Zmiana z

if (!Configuration::get('PS_SSL_ENABLED')) 

ja też wyczyszczone ciasteczko i BAM to działało. Nie wiem, czy to zepsuje inne rzeczy, ale W OSTATNIM dostaję się do mojego biura. Pokój !!

1

Miałem ten sam problem po dodaniu NGINX jako odwrotnego proxy przed moim serwerem Apache.

Problem był z «Sprawdź adres IP cookie» zestawu parametrów do «tak». Ponieważ byłem zablokowane od administratora i nie można go zmienić, zrobiłem go bezpośrednio w bazie danych SQL z tego wniosek:

UPDATE ps_configuration SET value = 0 WHERE name='PS_COOKIE_CHECKIP'; 

PS: ps_ jest mój stół przedrostek, można dostosować go do swoich ustawień.

+0

To jest szybkie. Dobrym rozwiązaniem może być dodanie klauzuli if i umieszczenie kilku linii kodu w celu sprawdzenia (na przykład) $ _REQUEST ["letmein"] ... abyś mógł wejść do panelu i włączyć/wyłączyć sprawdzanie ciasteczek dla tej intencji. Wyłączenie na zawsze nie jest dobrym pomysłem. – erm3nda

3

Spędziłem dużo czasu na debugowaniu tego. Zainstalowałem prestashop lokalnie na moim komputerze. I moim przypadku następuje, należy ręcznie nawigować do:

<domain>/admin/index.php