Данную функцию можно встретить на многих сайтах при регистрации. Этот урок покажет вам, как сделать скрипт, который будет генерировать случайный пароль заданной длины.
function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {
Мы назовем нашу функцию randomPassword. Вы можете назвать её как угодно, только не забудьте изменить название функции в продолжении кода. Функция имеет 2 параметра: $length и $allow. $length — длина генерируемого пароля, $allow — необязательный параметр, он устанавливает то, из каких символов генерировать пароль. По умолчанию мы используем строчные буквы английского алфавита и цифры.
$i = 1;
while ($i <= $length) {
Следующим шагом будет создание цикла, который будет повторяться столько раз, сколько было задано количество символов в генерируемом пароле. Таким образом, в этом цикле мы генерируем 1 случайный символ и добавляем его к окончательному паролю.
$max = strlen($allow)-1;
$num = rand(0, $max);
В приведенном выше коде генерируется номер между 0 и числом знаков, указанном в параметре $allow, минус один. Т.е. из 20 знаков выбирается любой от 0 до 19, потому что функция substr (), используемая в следующем коде, указывает, что первый знак — 0, а не 1.
$temp = substr($allow, $num, 1);
$ret = $ret . $temp;
Случайный символ выбираем из параметра $allow, используя функцию substr (). Этот символ добавляется в переменную $ret, в которой и будет окончательный пароль.
$i++;
}
return $ret;
}
Этот код закрывает цикл и возвращает сгенерированный пароль. Наша функция готова. Нам остается только запустить функцию в коде, а делается это так:
$password = randomPassword(10);
Этот пример будет генерировать пароль из 10 символов.
$password = randomPassword(10, '0123456789');
А здесь пароль будет генерироваться только из 10 цифр.
Надеюсь, этот урок помог вам. В завершение приведу полностью полученную функцию:
function randomPassword($length, $allow = "abcdefghijklmnopqrstuvwxyz0123456789") {
$i = 1;
while ($i <= $length) {
$max = strlen($allow)-1;
$num = rand(0, $max);
$temp = substr($allow, $num, 1);
$ret = $ret . $temp;
$i++;
}
return $ret;
}
Перевод: http://www.4webmaster.ru/
Рекомендуем почитать:
• Проверка e-mail
• Прячем счетчик
• Особенности ссылок «вверх страницы»
2 комментариев
Немного непонятно. Как тогда вобще сделать так, что-бы на сайте регестрироваться? Да и зачем???
Что вы подразумеваете под «как тогда вообще»? В этом уроке рассматривается лишь способ генерации пароля при регистрации. Создание аудентификации посетителей сайта — задача намного сложнее, которая состоит не только из самой регистрации и занесении информации в базу данных, для начала нужно действительно задать себе ваш второй вопрос.
Оставить комментарий: