Magento 1.9 Không thể đăng nhập vào bảng quản trị!


99

Tôi đã cài đặt Magento 1.9 . Nó đã hoạt động tốt trong một tuần. Đột nhiên ngày hôm qua, khi tôi cố gắng đăng nhập vào bảng quản trị Magento và tôi đã gõ usernamepasswordnhấp vào nút Đăng nhập và không có gì xảy ra. Các trang làm mới và đó là tất cả. Không có lỗi hoặc bất kỳ tin nhắn khác.

Nếu tôi nhập sai tên người dùng hoặc mật khẩu, nó hiển thị lỗi.

Sau khi tôi hiểu về vấn đề này, tôi được đề nghị bình luận những dòng sau:

ứng dụng \ code \ core \ Mage \ Core \ Model \ Phiên \ Tóm tắt \ 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

Và đối với một số phiên bản cũ hơn dưới đây đã được áp dụng trong cùng một tệp.

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

Ngay cả sau đó, tôi không thể đăng nhập vào quản trị viên. Nó là như nó đã được. Bất cứ ai cũng phải đối mặt với vấn đề này? Có giải pháp nào khác cho vấn đề này không?

(Tôi đã thử xóa bộ nhớ cache và phiên qua ftp).


bạn có thể vui lòng xóa bộ nhớ cache / cookie của trình duyệt và thử lại không?
alamelu

Sao chép tập tin lõi để app/code/local/Mage/Core..blahblahchỉnh sửa để Magento ghi đè tập tin lõi. Cũng sử dụng git để kiểm soát phiên bản, đó là một ơn trời.
Chris K

@SHIBHI S, giới thiệu liên kết này magentolearning.com/can-not-login-magento-admin-panel
Manoj Kumar

1
Nếu bạn đang sử dụng Chrome, hãy nhập F12> Tài nguyên> Cookie> Nhấp chuột phải vào miền của bạn> Xóa.
rybo111

Câu trả lời:


122

Dừng sửa đổi mã lõi như thế - nó có thể tạm thời giải quyết một vấn đề, nhưng nó có thể tạo ra các vấn đề trong tương lai gần như không thể theo dõi.

Có một số vấn đề khác nhau gây ra hành vi đăng nhập quản trị viên không có lỗi mà bạn gặp phải, nhưng tất cả đều quay trở lại Magento không thể đặt hoặc đọc cookie phiên. Magento sử dụng phiên để truyền thông báo lỗi giữa các trang - đó là lý do tại sao bạn không thấy thông báo lỗi. Magento cũng sử dụng các phiên để lưu trữ giá trị "được đăng nhập", do đó, không đặt phiên cũng gây ra hành vi lỗi cốt lõi.

Nguyên nhân có thể bao gồm

  • Thời gian máy tính cục bộ so với thời gian máy chủ không khớp, gây mất hiệu lực cookie ngay lập tức. Hãy chắc chắn rằng thời gian máy chủ của bạn là chính xác.

  • Quyền không chính xác trên var/session, ngăn không cho các tệp phiên được lưu

  • Cấu hình không chính xác của cơ sở dữ liệu / redis / lưu trữ phiên khác, ngăn lưu các giá trị phiên

  • Một mô-đun đang khởi tạo các phiên từ sớm , ngăn không cho đặt tên phiên chính xác

  • Bạn là nhà phát triển sử dụng nhiều URL và có nhiều tên miền cookie

  • Một nhà phát triển khác đã sửa đổi bằng cách nào đó app\code\core\Mage\Core\Model\Session\Abstract\Varien.php, tạo ra một lỗi khó theo dõi

  • Tên miền cookie System -> Configuration -> Web -> Session Cookie Managementkhông khớp với tên miền trang web thực tế.

  • Bạn đang sử dụng localhostlàm miền máy chủ của mình và sử dụng phiên bản webkit gặp sự cố / lỗi khi đặt cookie localhosttrong một số trường hợp.

Cách khắc phục ngắn hạn là chỉ xóa cookie của bạn cho tên miền. Điều đó thường đủ để giải quyết vấn đề. Nếu nó vẫn còn, hãy tìm ra lý do nào trong các lý do trên là nguyên nhân gây ra lỗi của bạn và thực hiện các bước để giải quyết nó (sửa quyền, v.v.)


7
Bạn có thể sử dụng sys của n98-magerun: kiểm tra để tìm sự cố với tên miền cookie và url cơ sở. magerun.net/quick-tip-find-login-issues-with-syscheck-command
cmuench

1
@Alan Storm, Cảm ơn bạn đã giải thích rõ ràng. Tôi đã giải quyết vấn đề của mình. Trong trường hợp của tôi, lý do của vấn đề là thứ 3.
SIBHI S

4
Trong trường hợp của tôi, không có đủ dung lượng đĩa trên máy chủ. Vì vậy, bạn có thể muốn thêm điều này như là một nguyên nhân có thể.
Simon

@cmuench Tôi chạy lệnh đó và tôi không hiểu kết quả: Cửa hàng BaseURL không hợp lệ không hợp lệ: Tên máy chủ mặc định bị cấu hình sai. Tên máy chủ phải chứa một dấu chấm Store Cửa hàng BaseURL không hợp lệ không hợp lệ: tên máy chủ sai được cấu hình. Tên máy chủ phải chứa một dấu chấm Store Cửa hàng BaseURL không hợp lệ không hợp lệ: sot_eng Tên máy chủ bị cấu hình sai. Tên máy chủ phải chứa một dấu chấm Store Cửa hàng BaseURL không hợp lệ không hợp lệ: sot_fra Tên máy chủ bị cấu hình sai. Tên máy chủ phải chứa dấu chấm ✔ Tên miền Cookie (bảo mật) của Cửa hàng: mặc định OK - Không có tên miền Tất cả tên miền Cookie trông giống nhau Ok và Không có tên miền
Denisa

@Denisa Bạn sẽ có thêm một chút may mắn nếu bạn thử hỏi đó như một câu hỏi mới.
Alan Storm

33

Tôi có cùng triệu chứng trên một số cài đặt Magento (không chỉ 1.9). Trong trường hợp của tôi, nó chỉ xảy ra trong Chrome. Tôi đang khắc phục điều này bằng cách đăng nhập vào Firefox / Safari / Opera và thay đổi 'Chỉ sử dụng HTTP' thành 'Không' trong 'Quản lý cookie phiên' của cài đặt 'Web'.

Xem ảnh chụp màn hình phụ trợ của Magento với cài đặt cookie


3
Điều này giúp tôi có được môi trường phát triển của mình chạy trong Chrome, nhưng hãy nhớ không sử dụng các cài đặt này trong sản xuất vì nó mở ra cả một lớp lỗ hổng bảo mật.
Stephen Crosby

Phần Quản lý Cookies phiên ở đâu?
Aryeh Armon

1
Đồng thời kiểm tra tên miền cookie của bạn - Tôi đã phát triển cục bộ và đây hóa ra là vấn đề của tôi.
Phil Birnie

Đã giúp tôi rất nhiều! Không bao giờ biết rằng điều này chỉ xảy ra trong Chrome. Haha!
jehzlau

4
Để thiết lập Use HTTP onlyđể Nokhông được tiếp cận bảng quản trị. Bạn có thể khởi chạy trực tiếp truy vấn SQL này: CẬP NHẬT __DATABASE_NAME__. core_config_dataSET value= '0' Ở ĐÂU core_config_data. path= 'web / cookie / cookie_httponly';
Nolwennig 8/12/2015

11

Tôi cũng có vấn đề này. Hóa ra các phiên không thể được ghi vào var/session, mặc dù thư mục được đặt thành 0777. Magento đã tạo các tệp phiên, nhưng tất cả chúng vẫn là byte.

Thay đổi lưu trữ phiên từ filesđể dbgiải quyết vấn đề cho tôi.


những công việc này! Tôi không hiểu tại sao Magento không viết các phiên và bộ nhớ cache trên các tệp. Các quyền là chính xác!
Michelangelo

Nếu tôi nhớ lại tình huống của mình, thì đó là đĩa đã đầy hoặc thư mục phiên có quá nhiều tệp.
Giel Berkers

Cái này làm việc cho tôi !!
Ner

Trong trường hợp của tôi: Thay đổi lưu trữ phiên từ db sang vấn đề được giải quyết.
akgola

7
  1. Mở thư mục cài đặt Magento của bạn. Xác định vị trí và mở tệp index.php.
  2. Tìm kiếm lỗi thông báo (E_ALL | E_STRICT); mã.
  3. Nhận xét nó như thế:

    /*error_reporting(E_ALL | E_STRICT);*/

  4. Và sử dụng mã sau đây thay thế:

    error_reporting(E_ALL);

    $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;

  5. Bỏ ghi chú bằng cách xóa dấu #, vì vậy nó trông như thế:

    ini_set('display_errors', 1);

  6. Lưu tệp này và tải lên máy chủ. Tải lại trang web của bạn để xem lỗi.


6

Một lý do có thể khác: ổ cứng / âm lượng / hạn ngạch đã đầy và do đó dữ liệu phiên không thể được ghi vào đĩa. Có vẻ như không thể, nhưng chỉ xảy ra lần thứ hai với tôi và mất một lúc để tìm ra.

Tôi không đủ danh tiếng để bình luận, nhưng @Alan Storm, có lẽ bạn muốn đưa điều này vào danh sách tuyệt vời của mình.


6

Gần đây tôi có cùng một vấn đề và thủ thuật đơn giản làm việc cho tôi. Ngoài ra, đây là dành cho những người không thể truy cập bảng điều khiển trên Google Chrome . Nếu bạn có thể làm việc trên Mozilla Firefox thì hãy làm như vậy vì tôi đoán vấn đề này không tồn tại trên Mozilla firefox.

Vì vậy, giải pháp cho chrome là:

Hệ thống Goto- > Cấu hình-> Web . Mở rộng tab Không an toàn và Bảo mật . Thay đổi URL cơ sở thành http://127.0.0.1/[Your folder name]nếu bạn đang sử dụng localhost hoặc thay đổi URL thành URL trang web của bạn thông qua đó bạn đang truy cập vào lối vào. Tôi đã phải đăng nhập hai lần để vào Bảng điều khiển kể từ khi tôi nhập chi tiết lần đầu tiên, nó chỉ làm mới và quay lại cùng một trang như bạn đã đề cập đến nó như là vòng lặp.


5

Mở phpMyAdmin của bạn từ máy chủ của bạn thử một lần lệnh sql này.

Chạy SQL này:

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;

Bây giờ quản trị viên có thể đăng nhập.

Hãy làm theo điều này:

Trang quản trị hiển thị 404 trang không tìm thấy


1
đừng quên mở trong cửa sổ ẩn danh hoặc trình duyệt khác để xóa phiên
Martin

3

Tôi đã có cùng một vấn đề và tôi đã giải quyết nó bằng cách xóa tất cả các tệp trong / var / session. Tôi nghĩ đó là vì quá nhiều phiên trong Magento!


3

Danh sách Bão báo là chính xác và chi tiết. Dưới đây là một vài trường hợp bổ sung.

  1. Trong vagrant, kiểm tra sự cho phép của var/sessionmáy chủ quá
    (vấn đề gắn kết)
  2. Kiểm tra xem đĩa của bạn đã đầy hay quá nhiều tệp trong var / session
  3. Chạy n98-magerun.phar sys:check(bắt các vấn đề bao gồm tên miền cookie)
  4. Thay đổi phiên thành cơ sở dữ liệu bằng cách chỉnh sửa local.xml. Nó sẽ loại trừ hầu hết các vấn đề cấp phép bằng cách sử dụng insidie<global>

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

Ngoài ra, hãy thay đổi các tiện ích mở rộng của bên thứ ba (tường lửa / tiện ích bảo mật), ví dụ https://github.com/paimpozhil/MageFirewall/blob/master/app/code/community/MageFirewall/Firewall/Model/Observer.php#L53 đặt bạn trong danh sách đen nếu bạn cố gắng quá nhiều lần.

Có thể xảy ra nếu phiên ban đầu của bạn không hoạt động đối với các sự cố về quyền nhưng sau đó tiếp tục không thành công ngay cả sau khi bạn khắc phục sự cố ban đầu

Trong trường hợp cụ thể của bạn, hãy theo dõi admin_session_user_login_successsự kiện vì hầu hết các mô-đun bảo mật / tường lửa sử dụng sự kiện này. Đặc biệt để mắt nếu biến $_SESSION['admin']được thiết lập lại bởi các nhà quan sát


2

Điều quan trọng nữa là bạn phải có khóa biểu mẫu, nếu không biểu mẫu của bạn sẽ không được xử lý.

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

2

Một giải pháp đơn giản cho vấn đề này là sử dụng http://127.0.0.1 làm tên máy chủ thay vì localhost.

Vì vấn đề là bạn không thể đăng nhập vào quản trị viên của mình, bạn nên thay đổi các url cơ sở an toàn và không bảo mật trong tabel cơ sở dữ liệu: core_config_data

Điều này cũng sẽ xác nhận cơ sở của bạn với sys của n98-magerun: kiểm tra


2

Nếu bạn đang phát triển localhostvà đã đặt hoặc thay đổi tên miền thành localhost, hãy cập nhật core_config_datatên miền bảng cơ sở dữ liệu của bạn thành 127.0.0.1thay thế. Ví dụUPDATE core_config_data SET value="http://127.0.0.1/magento/" WHERE path="web/unsecure/base_url";


2

Ngoài ra, bạn có thể cập nhật mật khẩu trong cơ sở dữ liệu nếu mọi thứ khác ở trên không hoạt động và bạn cần quyền truy cập tuyệt vọng:

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

thay thế từ người dùng và mật khẩu theo nhu cầu của bạn.


2

Trước hết tôi cố gắng xóa bộ nhớ cache của bạn và nếu điều này không hoạt động, hãy thử tạo chmod 700 trên thư mục var của bạn.


1

Bạn có thể thay đổi trình duyệt của bạn có thể là công việc này cho tôi. Khi xảy ra lỗi này, tôi đã thay đổi chrome trình duyệt thành firefox và nó hoạt động.


0

Điều tương tự đã xảy ra với tôi một thời gian trước và vấn đề của tôi đến từ phiên. Tôi không có đủ dung lượng DISK để tạo các phiên và bộ đệm từ đó var/. Tôi loại bỏ một số thứ và mọi thứ làm việc sau. Có lẽ nó sẽ giúp được ai đó.

Chúc mừng


0

Cố gắng xóa bộ nhớ cache của bạn bằng cách làm trống thư mục "var / cache" và "var / session", điều này đã giải quyết nó cho tôi.

Tôi cũng đã phải khởi động lại máy chủ web sau khi nó một lần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.