2012-07-04 20 views
7

Một vài ngày trước, tôi không thể truy cập bảng quản trị trên trang web của mình dựa trên nền tảng prestashop. Sau khi nhập tên đăng nhập và mật khẩu, tôi đã được chuyển hướng đến trang đăng nhập một lần nữa và mọi thứ lặp lại.Không thể đăng nhập Prestashop trong quản trị

Trang web được lưu trữ trên máy chủ chuyên dụng, nơi một số trang web prestashop khác mà tôi đang phát triển cũng được lưu trữ. Sau khi cố gắng truy cập vào bảng quản trị trên các trang web này, tôi nhận được cùng một "lỗi".

Bạn nghĩ sao, vấn đề là gì?

Prestashop ver .: 1.4.7.3 và 1.4.8.2

Server: CentOS, PHP

Trả lời

19

Dưới đây là một số điều bạn có thể thử:

1/Xóa bộ nhớ cache của trình duyệt của bạn và cookie

2/Hãy thử sử dụng Firefox thay vì Chrome (mà dường như có một số vấn đề đột xuất)

3/Kiểm tra PS_SHOP_DOMAINPS_SHOP_DOMAIN_SSL trong ps_configuration bảng

4/Bằng tay smarty rõ ràng bộ nhớ cache: loại bỏ tất cả các file từ tools/smarty/compiletools/smarty/cache

5/Vô hiệu hóa việc kiểm tra IP trong classes/Cookie.php (điều này có thể gây ra nhiều vấn đề với động lực IP): trong isLoggedBack(), loại bỏ hoặc nhận xét điều kiện thứ tư:

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

6/Tận dụng hết hạn thời gian ngắn hơn cho cookie (IE c một có vấn đề với các tập tin cookie thời gian dài nhất): trong classes/Cookie.php constructor,

thiết lập: $this->_expire = isset($expire) ? (int)($expire) : (time() + 3600);

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

+4

Đối với PS 1.5; '5/Vô hiệu hóa kiểm tra IP ': bạn có thể thay vì chỉnh sửa thủ công các tệp lõi vào' Quản trị> Tuỳ chọn' và thay đổi 'Kiểm tra địa chỉ IP trên cookie' thành' no' .. tương tự với 6/ – UnLoCo

+0

+1 cho đề xuất của Firefox! Chrome dường như không làm gì sau khi đăng nhập thành công ... – Mediabeastnz

+0

# 5 giải quyết nó cho tôi - tôi có 2 kết nối internet, vấn đề đã xảy ra chỉ trên một trong số họ, lang thang tại sao ... –

-1

Nếu bạn có một trang web làm việc, nơi bạn có thể đăng nhập. Có thể bạn có thể sao chép người dùng từ người làm việc sang người không làm việc, và nếu người đó làm việc.

+0

Không áp dụng theo bất kỳ cách nào – erm3nda

0

Có một số điều có thể xảy ra để ngăn mật khẩu cũ của bạn hoạt động. Có thể là _COOKIE_KEY_ của bạn đã thay đổi.

Bạn có thể thử sử dụng tập lệnh sau để tạo băm mật khẩu mới. Sau đó bạn có thể thay thế nó trong cơ sở dữ liệu trong bảng xxxx_employee (trong đó xxxx_ là tiền tố bảng của bạn). Tôi hi vọng nó làm việc cho bạn. Trong mọi trường hợp: giữ một bản sao lưu của băm cũ của bạn.

Đây là kịch bản nhỏ:

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

Đừng quên để loại bỏ các kịch bản từ máy chủ của bạn một lần thực hiện của bạn!

-1

Tôi biết điều này là cũ nhưng nó có thể giúp ai đó, lần lượt các lỗi trên bằng cách mở/config/config.inc.php.

Hãy tìm dòng:

ini_set('display_errors', 'off'); 

thay đổi nó để:

ini_set('display_errors', 'on'); 

EDIT: thay đổi một

+0

Điều này không áp dụng theo bất kỳ cách nào. – erm3nda

1

tôi đã có vấn đề dường như lỗi đánh máy giống như mọi người khác.

Tôi có thể đăng nhập qua IE nhưng không thể đăng nhập bằng firefox.

Những gì tôi đã làm để khắc phục sự cố đã đi vào trình quản lý cookie và xóa tất cả cookie.

Tôi biết điều đó nghe có vẻ giống nhưng không có gì khác hiệu quả.

Tôi đã tìm kiếm tên trang web của mình và xem cookie, tên này đã dài ngày nhưng không còn hoạt động nữa. Đoán của tôi là tôi đã bị hỏng cookie hoặc có thể họ làm khớp IP, bởi vì ở giữa sử dụng bảng điều khiển quản trị, tôi đã chuyển sang trình duyệt điện thoại của mình để kiểm tra điều gì đó. Khi trở về, nó sẽ chỉ vòng lặp trang đăng nhập, không có lỗi.

Tôi nghĩ rằng họ cần khắc phục vấn đề từ quan điểm phần mềm.

Bất kể, sau khi tôi xóa tất cả cookie được liên kết với trang web của mình, tôi đã quay lại ngay lập tức. Nó cũng giải quyết được vấn đề tôi gặp phải với www.mysite.com và mysite.com. Tôi đã nói chuyện với công nghệ hỗ trợ bởi vì đôi khi nó sẽ làm việc và những lúc khác nó sẽ không.Có lẽ cookie cũng lưu trữ biến thể nào của www/non được sử dụng để liên kết động. DNS của tôi đã được cho phép thời gian để giải quyết và hỗ trợ kỹ thuật đổ lỗi cho điều đó nhưng không phải vậy.

Không chỉ xóa cookie, hãy xóa thủ công các cookie cho trang web của bạn. Khi tôi sử dụng các cookie rõ ràng, nó không xóa nhiều cookie. Tôi thấy rằng trang web của tôi vẫn có 9 cookie được đặt sau khi cookie rõ ràng. Cho dù đó là lỗi của tôi hay cái gì khác, tôi sẽ không biết.

Chúc bạn may mắn và cảm ơn các đề xuất khác. Nếu nó trở lại, tôi sẽ đi vào các đề xuất khác và báo cáo lại.

1

Đây là những gì đã hiệu quả đối với tôi: trong bảng điều khiển quản trị> tùy chọn, đặt "Kiểm tra địa chỉ IP của cookie" thành "Không".

http://xbfish.com/tag/auto-logout/

-1

Đôi khi tôi nhận được lỗi này khi tôi cấu hình miền xưởng sản xuất bằng phi www và tôi cố gắng truy cập với www, ví dụ. Tôi thích để buộc tất cả người dùng để có url cùng, vì vậy tôi buộc tại .htaccess nhập với www:

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

Trong trường hợp tên miền quan trọng sẽ không ảnh hưởng. Trong trường hợp tên miền đó không quan trọng, điều này sẽ không giải quyết được. – erm3nda

-1

Trong trường hợp bạn đã chuyển prestashop từ một phiên bản địa phương hoặc từ tên miền khác, ngoài của cổ điển.

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"; 

Kiểm tra bảng được gọi ps_shop_url, và cập nhật domaindomain_ssl lĩnh vực, và physical_url là tốt.

Ví dụ:

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

Điều này không áp dụng theo bất kỳ cách nào – erm3nda

1

tôi sử dụng prestashop 1.4.8.2 Tôi chỉ debuged loop đăng nhập văn phòng lưng tôi bằng cách thay đổi admin/login.php Chỉ cần loại bỏ điều kiện dường như vô dụng trong đoạn mã sau.

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

đổi với

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

Tôi cũng xóa cookie và bam nó làm việc. Tôi không biết nếu nó sẽ mess thứ khác nhưng tôi có thể AT LAST nhận được trong văn phòng của tôi trở lại. Hòa bình !!

1

Tôi gặp vấn đề tương tự sau khi thêm NGINX làm proxy ngược trước máy chủ web Apache của tôi.

Sự cố xảy ra từ tham số «Kiểm tra địa chỉ IP trên cookie» được đặt thành «yes». Kể từ khi tôi bị nhốt ra từ admin và không thể thay đổi nó, tôi đã làm nó trực tiếp vào cơ sở dữ liệu với yêu cầu SQL này:

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

PS: ps_ là prefix bàn của tôi, bạn có thể thích ứng với nó để cài đặt.

+0

Điều này thật nhanh. Một giải pháp tốt có thể là thêm mệnh đề if và đặt vài dòng mã để kiểm tra (ví dụ) $ _REQUEST ["letmein"] ... để bạn có thể nhập bảng điều khiển và bật/tắt kiểm tra cookie cho ý định đó. Vô hiệu hóa mãi mãi không phải là một ý tưởng hay. – erm3nda

3

Tôi đã dành rất nhiều thời gian gỡ lỗi này. Đã cài đặt prestashop locallly trên máy tính của tôi. Trường hợp của tôi như sau, bạn nên điều hướng theo cách thủ công như sau:

<domain>/admin/index.php