2015-06-30 59 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