Скрипт, который проверяет сложность пароля пользователя во время регистрации
Что для этого нужно;
Заходим в меню редактирования шаблонов, открываем код шаблона "Формы регистрации пользователей"
1. Находим там $РАSSWORD_FL$
2. Сразу после него вставляем этот скрипт
Code
<div
id="mypassword_text" style="display:inline;"></div> <div
id="mypassword_bar" style="font-size: 1px; height: 3px; width: 0px;
"></div></td></tr><SCRIPT
type="text/javascript"> var m_strUpperCase =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ_"; var m_strLowerCase =
"abcdefghijklmnopqrstuvwxyz-"; var m_strNumber = "0123456789"; function
checkPassword(strPassword) { var nScore = 0; if (strPassword.length <
6) { nScore += 0; } else if (strPassword.length > 5 &&
strPassword.length < 10) { nScore += 11; } else if
(strPassword.length > 9) { nScore += 33; } var nUpperCount =
countContain(strPassword, m_strUpperCase); var nLowerCount =
countContain(strPassword, m_strLowerCase); var nLowerUpperCount =
nUpperCount + nLowerCount; if (nUpperCount == 0 && nLowerCount
!= 0) { nScore += 10; } else if (nUpperCount != 0 && nLowerCount
== 0) { nScore += 10; } else if (nUpperCount != 0 &&
nLowerCount != 0) { nScore += 26; } var nNumberCount =
countContain(strPassword, m_strNumber); if (nNumberCount >= 2) {
nScore += 10; } if (nNumberCount >= 4) { nScore += 26; } if
(nNumberCount != 0 && nLowerUpperCount != 0) { nScore += 5; }
return nScore; } function runPassword(strPassword, strFieldID) { var
nScore = checkPassword(strPassword); var ctlBar =
document.getElementById(strFieldID + "_bar"); var ctlText =
document.getElementById(strFieldID + "_text"); if (!ctlBar || !ctlText)
return; ctlBar.style.width = nScore + "%"; if (nScore == 100) { var
strText = "Отличный пароль! Главное не забыть его. :)"; var strColor =
"limegreen"; } else if (nScore >= 80) { var strText = "Очень хороший
пароль."; var strColor = "blue"; } else if (nScore >= 65) { var
strText = "Это видно, что пароль, можно уже и остановиться!"; var
strColor = "dodgerblue"; } else if (nScore >= 50) { var strText =
"Во-во, это ещё ничего!.."; var strColor = "mediumturquoise"; } else if
(nScore >= 25) { var strText = "Слабоват парольчик."; var strColor =
"yellowgreen"; } else if (nScore != 0) { var strText = "Ужас. (qwerty и
то лучше :)) "; var strColor = "firebrick"; } else { var strText = "";
var strColor = "black"; } ctlBar.style.backgroundColor = strColor;
ctlText.innerHTML = "<span style='color: " + strColor + ";'> " +
strText + " - " + nScore + "%</span>"; } function
countContain(strPassword, strCheck) { var nCount = 0; for (i = 0; i <
strPassword.length; i++) { if (strCheck.indexOf(strPassword.charAt(i))
> -1) { nCount++; } } return nCount; }
document.getElementById("siF14").onkeyup="runPassword(this.value,
'mypassword')"; </SCRIPT>
Комментарии: