如何生成Joomla密码?

时间:2016-01-19 13:09:41

标签: php mysql joomla

我需要使用Joomla crypt密码,才能注册用户。 我现在正在使用的是:

$query="update table_user set password=md5(password) where id_user='{$form->data['id_user']}'";
$db->setQuery($query);
$db->query();

我的问题是:如何将此密码转换为有效且加密的joomla密码?

这个问题不重复,因为旧问题很老,目前无法应用。

2 个答案:

答案 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();