我需要使用Joomla crypt密码,才能注册用户。 我现在正在使用的是:
$query="update table_user set password=md5(password) where id_user='{$form->data['id_user']}'";
$db->setQuery($query);
$db->query();
我的问题是:如何将此密码转换为有效且加密的joomla密码?
这个问题不重复,因为旧问题很老,目前无法应用。
答案 0 :(得分:2)
Joomla 3.x使用Bycrypt而非MD5,因此您当前的方法不正确。
您可以使用以下内容生成哈希:
jimport('joomla.user.helper');
JUserHelper::hashPassword($password);
其中$password
是密码变量。
您可能还需要考虑使用Joomla编码标准进行数据库查询:
https://docs.joomla.org/Inserting,_Updating_and_Removing_data_using_JDatabase
希望这有帮助
jimport('joomla.user.helper');
$password = 'however you get the password';
$hash = JUserHelper::hashPassword($password);
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query->update($db->quoteName('table_user'))
->set($db->quoteName('password') . ' = ' . $db->quote($hash))
->where($db->quoteName('id_user') . ' = ' . (int)$form->data['id_user']);
$db->setQuery($query);
$result = $db->execute();
您还需要更新$password = 'however you get the password';
,因为我不知道您从哪里获取密码
答案 1 :(得分:0)
你需要按照以下方式做。
query= "UPDATE table_user SET password=MD5(‘new password’) WHERE usertype = 'Super Administrator'";
$db->setQuery($query);
$db->query();