2015-06-30 44 views
0

我想在Joomla中开发一个配置文件表单,以便用户可以更新他们的信息 - 包括更改他们的密码。Joomla更改密码表

但是,从下面的示例中可以看出,点只是在字段中超出可查看字符串。有没有一种方法可以显示用户密码的正确点数?例如,对于一个8字符密码的用户:

<form> 
    <input type="password" name="psw" value="********"> 
</form> 

<form> 
    <input type="password" name="psw" placeholder="********"> 
</form> 

我得到填充,因为这输入字段:

enter image description here

PS我知道知道识别密码长度如在this question。然而,对于网站类型的散列/腌制,这是可接受的

+0

为什么不直接从核心配置文件页面复制代码?'\t \t <字段 \t \t \t名称= “密码1” \t \t \t类型= “密码” \t \t \t自动填充= “关闭” \t \t \t类= “验证密码” \t \t \t描述=” COM_USERS_DESIRED_PASSWORD“ \t \t \t filter =”raw“ \t \t \t标签= “COM_USERS_PROFILE_PASSWORD1_LABEL” \t \t \t大小= “30” \t \t \t验证= “密码” \t \t />'无论是占位符,也不值是你想要的。 – Elin

回答

0

稍微更新以合并评论。

在第一个示例中(使用“value”),您所做的是将密码的实际值设置为一系列'*'(如果保存表单)。然后,Joomla密码字段正在做它正在做的事情,即混淆新密码。

我不知道你是否可以使用占位符给该字段有一个值(虽然值不显示)。如果它占位符会像“输入新密码”一样。密码将在用户输入时自动混淆。但是,如果密码已经存在,则该字段不会显示占位符或值。

从我可以告诉你正在谈论编辑配置文件,在这种情况下,有一个现有的密码。

Joomla密码字段从来没有显示回原来的密码,一旦它被设置,它只是提供一个空白的用户更改密码,如果需要。如果用户正在更改密码,他们应该只看到一个空字段,然后为他们输入的每个字符查看一个点。密码字段无法显示现有密码,因为它在数据库中被散列。字段没有办法检索实际密码,只有散列密码。获取真实密码的唯一方法是用户输入。

你不会说$pass来自哪里,但是如果你从数据库中取出它,它就是哈希值,然后它将会在保存时会双倍化。

有没有真正的理由不使用Joomla配置文件编辑表单?或者如果不是仅仅复制和修改它?

+0

非常感谢 - 在Joomla个人资料编辑表单中,是否可以仅显示用户密码中的特定点数?目前我们有上面的截图,即使底层密码只是“通过” – Bendy

+0

好吧,我认为你不理解密码是如何存储的。密码以bcrypt存储,并且所有密码存储的长度相同。如果你要显示密码,它不会是“通过”,这将是bcrypt哈希。因此它会很长。你不想显示,原因很多。当您打开配置文件时,它应该提供一个空白字段,并且只有在键入新内容时才会更新。 – Elin

+0

嗨艾琳,我知道哈希/盐渍密码,但我想说的是捕获字符串长度(例如'strlen($ pass)')并使用该值填充正确的点数以匹配 – Bendy