2016-01-26 2 views
0

Я создал пользовательскую форму входа на сайт joomla. При регистрации пользователя я конвертирую пароль пользователя в пароль формата joomla, как это.Пароль для входа в Joomla 1.5 с использованием PHP

$salt = JUserHelper::genRandomPassword(32); 
$crypt = JUserHelper::getCryptedPassword($user_password,$salt); 
$joomlapwd = $crypt.':'.$salt; 

Итак, при входе пользователя я должен подтвердить имя пользователя и пароль. Я делаю вот так:

$uemail = $_POST['email']; 
$password = $_POST['password']; 

$query = "SELECT COUNT(*) AS count,id,username,password FROM jos_users WHERE email = '".$uemail."'"; 
$db->setQuery($query); 
$rows = $db->loadObject(); 

if ($rows->count == 1) { 
    $pass_array = explode(':',$rows->password); 
    $joomla_pass = $pass_array[0]; 
    $joomla_salt = $pass_array[1]; 

    if ($joomla_pass == md5($password_for_check.$joomla_salt)) { 
    echo 'Username and password combination validated.'; 
    } else { 
    echo 'Invalid password for username.'; 
    } 
} 

Не работает. Пожалуйста, помогите мне. Благодарю.

+0

почему ты этого не сделал используйте jquery для этой функции. Я считаю, что лучше проверить через jquery. –

ответ

0

Вы всегда можете разбить сохраненный пароль из соли, поскольку они просто разделены символом ':'?

Если страница находится вне рамок Joomla вам нужно будет включать в себя структуру, которая должна быть в состоянии осуществить

Если вы внутри рамки Joomla, пропустить мимо этого блока. Тем не менее, я не испытывал ссылочный кодоблок:

define('_JEXEC', 1); 

define('DS', DIRECTORY_SEPARATOR); 
define('JPATH_BASE', dirname(__FILE__).DS."..".DS.".."); 

require_once (JPATH_BASE.DS.'includes'.DS.'defines.php'); 
require_once (JPATH_BASE.DS.'includes'.DS.'framework.php'); 

$mainframe =& JFactory::getApplication('site'); 
$mainframe->initialise(); 

В рамках вам нужно будет искать пользователя по ID или имя пользователя:

$user =& JFactory::getUser(username or id goes here); 

Тогда, если у вас есть матч за $ пользователю вы можете просто сделать этот доступ, что пароль пользователя:

$user->password; 

Тогда вы можете просто сравнить с тем, что ваш $ PSW

Смежные вопросы