it-mot-dan-vi.com

Làm thế nào (lại) đặt mật khẩu cho quản trị viên sau khi di chuyển từ 1.5?

Tôi đã di chuyển một trang web Joomla 1.5 cũ sang một phiên bản Joomla 3.3 mới sáng bóng bằng cách sử dụng công cụ SP UPGRADE .

Bây giờ tôi dường như không thể đăng nhập và tôi sợ nó bởi vì tất cả mật khẩu người dùng trong DB trông giống như 'MD5': 'Salt', đây là cách cũ để tạo mật khẩu.

Tôi hiểu mã mới hơn sử dụng mật khẩu dựa trên. Tất cả các phương pháp tôi thấy được mô tả về việc dán theo mật khẩu 'bí mật' kiểu cũ đều không hoạt động.

Làm cách nào để đặt lại mật khẩu trong Joomla 3.3?

7
tgunr

Đây là một cách giải quyết để tạm thời đặt lại mật khẩu cho tài khoản của bạn.

  1. Đăng nhập vào bảng điều khiển lưu trữ của bạn và sử dụng công cụ cơ sở dữ liệu có sẵn (có thể là PHPmyAdmin).

  2. Tải cơ sở dữ liệu thích hợp và sau đó chuyển đến bảng jos_users. (Tiền tố cơ sở dữ liệu có thể khác nhau cho trường hợp của bạn).

  3. Chuyển đến chế độ xem duyệt của PHPmyAdmin, để bạn có được chế độ xem hồ sơ người dùng.
  4. Xác định vị trí tài khoản của bạn và nhấp để chỉnh sửa hoặc nhấp trực tiếp vào trường 'mật khẩu' (Thông thường là PHPmyAdmin, sẽ giúp trường có thể chỉnh sửa bằng cách này).
  5. Trong trường mật khẩu, dán giá trị bên dưới:

$ 2y $ 10 $ JszAMznv7U2Q4VETQdw7n.CX/HPekafC8sxa9.n0V2gp/t/.xvHYi

  1. Không áp dụng bất kỳ chức năng đặc biệt nào để lưu trường và nó sẽ đặt mật khẩu tài khoản của bạn cho quản trị viên. Lưu hồ sơ.

Bây giờ bạn có thể đăng nhập bằng tài khoản của mình, sử dụng làm mật khẩu: admin.

Sau khi đăng nhập, hãy đảm bảo bạn đã đặt mật khẩu mong muốn.

9
FFrewin

Ngoài câu trả lời hay của FFrewin, đây là một vài cách khác để đặt lại mật khẩu quản trị viên.

Thông báo
[.__.] Hãy nhớ rằng hầu hết các phương thức này sẽ đặt mật khẩu của bạn thành một cái gì đó đơn giản như admin. Điều rất quan trọng là thiết lập một mật khẩu mạnh hơn sau đó. Nếu có lý do để tin rằng trang web đã bị hack, bạn có thể muốn xóa những người dùng khác có quyền truy cập quản trị viên sau khi bạn đã khôi phục quyền truy cập vào bản cài đặt Joomla của mình.
[.__.] Các phương thức này được lấy một phần từ Joomla Docs .

Thay thế 1: Tệp cấu hình.php

Nếu bạn có thể đăng nhập với người dùng khác (không có quyền siêu quản trị viên), có thể thêm dòng này vào cuối tệp configuration.php Trong thư mục gốc Joomla của bạn:

public $root_user='myname';

Thay thế myname bằng tên người dùng của bất kỳ người dùng nào bạn biết mật khẩu của (với quyền Tác giả hoặc cao hơn). Người dùng này giờ đây sẽ có thể đăng nhập với tư cách là siêu quản trị viên và bạn có thể chỉnh sửa/thêm người dùng trong trình quản lý người dùng. Hãy nhớ xóa dòng bổ sung khỏi tệp configuration.php Khi bạn hoàn thành, bằng cách để Joomla cố gắng tự động thực hiện khi được nhắc hoặc bằng cách chỉnh sửa tệp theo cách thủ công.

Phương án 2: Thêm người dùng Super-admin mới

Một người dùng siêu quản trị viên mới có thể được tạo bằng phương pháp này:

  1. Mở phpMyAdmin (hoặc tương tự, tùy thuộc vào lưu trữ của bạn) và chọn cơ sở dữ liệu cho Joomla! trang web.
  2. Nhấn nút "SQL" trên thanh công cụ để chạy truy vấn SQL trên cơ sở dữ liệu đã chọn. Điều này sẽ hiển thị một trường có tên "Chạy truy vấn/truy vấn SQL trên cơ sở dữ liệu". Xóa bất kỳ văn bản nào trong trường này và sao chép và dán truy vấn sau bên dưới và nhấn nút Bắt đầu để thực hiện truy vấn và thêm người dùng Quản trị viên mới vào bảng:

    INSERT INTO `jos31_users`
    (`name`, `username`, `password`, `params`)
    VALUES ('Administrator2', 'admin2',
    'd2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199', '');
    INSERT INTO `jos31_user_usergroup_map` (`user_id`,`group_id`)
    VALUES (LAST_INSERT_ID(),'8');
    
  3. Hãy nhớ thay thế hai lần xuất hiện của jos31_ Bằng tiền tố được sử dụng bởi cài đặt Joomla của bạn (điều này thường dễ dàng được phát hiện trong phpMyAdmin).

  4. Bây giờ bạn có thể truy cập trang web của mình với tên người dùng admin2 và mật khẩu bí mật . Đảm bảo chỉnh sửa mật khẩu của bạn sau khi bạn đăng nhập.

Phương án 3:

Tạo một tệp PHP với mã bên dưới, tải nó lên thư mục JOOMLAROOT/quản trị viên của bạn và chạy nó trong trình duyệt của bạn. Nó sẽ đăng nhập bạn ngay lập tức (cả Joomla 2.5 và 3) và cho phép bạn thêm/chỉnh sửa người dùng. Hãy nhớ xóa tệp sau khi bạn hoàn thành. Việc không làm như vậy sẽ gây ra vấn đề bảo mật rất lớn.

Công cụ này cũng có thể được tìm thấy ở đây: http://myext.eu/en/j25-login

<?php
define('_JEXEC', 1);
define('DS', DIRECTORY_SEPARATOR);

if (file_exists(dirname(__FILE__) . '/defines.php')) {
    include_once dirname(__FILE__) . '/defines.php';
}

if (!defined('_JDEFINES')) {
    define('JPATH_BASE', dirname(__FILE__));
    require_once JPATH_BASE.'/includes/defines.php';
}

require_once JPATH_BASE.'/includes/framework.php';
require_once JPATH_BASE.'/includes/helper.php';
require_once JPATH_BASE.'/includes/toolbar.php';
$app = JFactory::getApplication('administrator');
JPluginHelper::importPlugin('user');
$user = JUser::getInstance();
$db = JFactory::getDBO();
$q = 'SELECT u.* FROM `#__users` as u
        LEFT JOIN `#__user_usergroup_map` as ug ON u.id = ug.user_id
        WHERE `block` = 0 AND `activation` = 0 AND ug.group_id = 8
        LIMIT 0,1';
$db->setQuery($q);

$user_tmp = $db->loadObject();
$user_tmp->guest = 0;
$user_tmp->isRoot = 1;
// $user_tmp->groups = array(8=>8);
// $user_tmp->_authGroups = array(1,8);
// $user_tmp->_authLevels = array(1,1,2,3);
// $user_tmp->gid = 1000;

foreach($user_tmp as $k=>$v){
    $user->set($k,$v);
}
$session = JFactory::getSession();
$session->set('user', $user);
$app = JFactory::getApplication();
$app->checkSession();
$app->redirect( JUri::base(), "" );
7
johanpw