PHP на практике. Делаем генератор паролей
Всем приуэт! Сегодня, перед тем как создавать урок, целый день долбил этот генератор паролей. В этих 40 строчках скрипта оказывается может быть столько проблем!))
Генератор паролей представлят из себя форму, в которую вводится кол-во символов в пароле и кнопки подтверждения, после ее нажатия генерируется пароль. В коде используются все те функции, которые мы вспоминали на прошлом уроке. Блин, как училка говорю Вобщем код написан и сейчас будем его разбирать. (Кстати, не забываем коммнетировать!)
Сейчас пока только скелет программы. Полный код будет в конце. Все комментарии будут по ходу скрипта:
[sourcecode language='PHP']
if($_GET['number'] >= 50) // вот как раз мы получаем то самое значения атрибута name – number. Создаем условие, если number введенный нами более 50, то…
{
echo «Пароль из».$_GET['number'].» знаков. Слишком много»; // …выводится сообщение о превышении кол-ва сиволов.
}
else{ // в противном случае..
function gen_pass($number) // задаем функцию. Ту самую, которая генерит пароль.
{
$arr = array(’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’q',’w',’e',’r',’t',’y'); // вот это массив тех символов, которые как раз и буду участвовать в генерации. я не стал писать весь алфавит, т.к. для начала и этого хватит.
$pass = «»; // создаем пока пустую переменную
for($i = 0; $i < $number; $i++) // создаем цикл перебора каждого символа. цикл будет делаться столько раз, сколько задано символов юзером
{
$index = rand(0, count($arr) - 1); //а вот и та самая рандомизация. берет случайный элемент массива arr.
$pass .= $arr[$index]; // дописываем в переменную pass
}
return $pass; //возвращаем. зачем - сам не знаю)))) как узнаю, напишу.
}
echo "«.gen_pass($_GET['number']).»«; // ну а тут уже выводим сам пароль.
}
?>
[/sourcecode]
Вот это сам главный скрипт генерации пароля. Его можно запустить на сервере и он будет делать свое дело.
Ну а теперь уберем из кода комментарии, добавим немного креатива и дизайна))))
[sourcecode language='PHP']
Генератор паролей by Ярик &amp;amp;copy;
if($_GET['number'] >= 50)
{
echo «И куда тебе такой пароль из «.$_GET['number'].» знаков? «;
}
else{
function gen_pass($number)
{
$arr = array(’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’q',’w',’e',’r',’t',’y');
$pass = «»;
for($i = 0; $i < $number; $i++)
{
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}
echo "«.gen_pass($_GET['number']).»«;
}
?>
[/sourcecode]
СМОТРИМ ЧТО У НАС ПОЛУЧИЛОСЬ В ИТОГЕ
Советую прочитать и эти посты:
- PHP на практике. Делаем скрипт редиректа для дорвеев
- PHP на практике. Введение
- Срезовый пост #1
- Новая цель – Добиться посещаемости блога до 100 человек в сутки
- Реклама на блоге
Комментарии
20.09.2009
#2 |
Отправил в 19:31
Оптимизация кода: Не проще ли? А вот если там нету /dev/urandom тогда уже можно другой код юзать) |
20.09.2009
#3 |
|
21.09.2009
#4 |
Отправил в 00:01
А Вы им сами готовы пользоваться, помоему он небезопасен из-за малого количества символов, добавте в код большие и малые английские буквы. |
21.09.2009
#5 |
Отправил Ярик в 11:55
Да я просто показал пример генератора паролей, естественно его использовать глупо, но могу сделать его рабочим, а нужно ли? Ответить
|
12.01.2010
#6 |
Отправил в 23:23
> return $pass; //возвращаем. зачем – сам не знаю)))) как узнаю, напишу. |
#1
Понравилось что написал не просто обычный генератор паролей, а ещё постарался с дизайном: разукрасил форму, да и вобще за применённые знания тебе респект:)