2013-05-29 32 views
1

我需要將密碼字符限制爲僅作爲示例,而不是更少..我怎麼能限制密碼是一定數量的字符?

HTML屬性中只有「maxlength」,但沒有要使用的「長度」或「minlenght」 !

我有這樣的代碼:

<input type="password" name="password" maxlength="9" pattern="\d+" value="<?php echo htmlentities($password); ?>" /> 

我怎麼能限制密碼爲字符一定數量的?

+4

請勿。不要*限制密碼的長度。最重要的是,你要嚴格限制給定密碼的安全性,並且如果用戶想輸入200個隨機字符,他們應該被允許。其次,長度設置限制的密碼尖叫「我將密碼存儲爲純文本」,因爲* any *長度的密碼的哈希總是長度相同。做。不。做。這個。 – Sammitch

+0

@Sammitch:我明白了,謝謝你這麼有價值的信息.. – MRAN

回答

0

您可以使用HTML5。對我來說這是一個很好的解決方案。

<form action="#" method="POST" id="form"> 
    <input pattern=".{10}" title="10 characters" placeholder="10 characters" name="password" type="password" /> 
    <input type="submit" value="Test" /> 
</form> 

見行動:http://jsfiddle.net/a4B7z/

不支持Internet Explorer 9及更早版本或Safari。

+0

謝謝,這是有幫助的,我可以使用另一個'pattern'和'maxlenght'以及.. – MRAN

+0

我很感謝你的理解,並且我希望你能幫我解決這個問題http://goo.gl/j82ql ) – MRAN

0

爲什麼不使用strlen?

if(strlen($password) < 10) 
+0

謝謝Mercfh .. – MRAN

1

您可以使用JavaScript來做到這一點。首先附上onblur事件:

<input ... onblur="verifyMinLength(this, 10)"... /> 

,然後在JavaScript:

function verifyMinLength(o, len) { 
    if (o.value.length < len) { 
     alert('The password must be 10 characters in length.'); 
     o.focus(); 
    } 
} 

,當然這可能是票友。您可以利用放在input控件旁邊的標籤,而不是alert。您也可以使用CSS來更改input控件的邊框,以便用戶獲得更多的反饋。但這完全取決於你。

+0

感謝您的回答,我找到了最簡單的一個.. – MRAN

0

您需要驗證密碼輸入後:

if (strlen($password) != 10) 
{ 
    echo 'password must be 10 characters'; 
} 
+0

感謝您的協助.. – MRAN

+0

您是歡迎!很高興你找到了適合你的解決方案。 – liebs19

0

那麼我看到你已經有很多很好的答案了。使用像freejosh發佈的驗證模式是我會這樣做的方式。在我看來,這是最簡單和最乾淨的方法。

BUT .....

我有在這一個sammitch同意。由於他已經說過的原因,我永遠不會限制密碼長度。有一個最小長度可以是一件好事,因爲它迫使密碼有一定數量的字符,因此(希望)增加其安全性,但我永遠不會給最大長度的限制

相關問題