Определение сложности пароля

В этом уроке мы с Вами создадим индикатор сложности паролей. Эта модификация поможет Вашим пользователям создавать более безопасные пароли при заполнении формы регистрации.

После того, как пользователь вводит желаемый пароль, скрипт делает запрос к другому PHP файлу, который проверяет пароль на маленькие и большие буквы, символы и числа. Индикатор, который будет показывать сложность пароля, отобразится на странице без перезагрузки. Давайте приступим!

Для начала нам необходимо создать файл form.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>Untitled Document</title>
		<script type="text/javascript">
			function toggle_pass(passid) {
				if (window.XMLHttpRequest) {
						http = new XMLHttpRequest();
					} else if (window.ActiveXObject) {
						http = new ActiveXObject("Microsoft.XMLHTTP");
					}
				handle = document.getElementById(passid);
				var url = 'ajax.php?';
				if(handle.value.length > 0) {
					var fullurl = url + 'do=check_password_strength&pass=' + encodeURIComponent(handle.value);
					http.open("GET", fullurl, true);
					http.send(null);
					http.onreadystatechange = statechange_password;
				} else {
					document.getElementById('password_strength').innerHTML = '';
				}
			}
			function statechange_password() {
				if (http.readyState == 4) {
					var xmlObj = http.responseXML;
					var html = xmlObj.getElementsByTagName('result').item(0).firstChild.data;
					document.getElementById('password_strength').innerHTML = html;
				}
			}
		</script>
		<style type="text/css">
		input {
			border: 1px solid #000000;
			padding: 5px;
		}
		#password_strength {
			width: 250px;
			background: #cccccc;
		}
		#password_bar {
			font-size: 11px;
			background: #7FFF00;
			border: 1px solid #cccccc;
			padding: 5px;
		}
		</style>
	</head>
	<body>
		<input id="pass" type="password" name="password" onchange="toggle_pass('pass')" /><br /><br />
		<strong>Сложность пароля</strong>:<br />
		<div id="password_strength"> </div>
	</body>
</html>

Следующим шагом мы создадим файл с именем ajax.php, который будет проверять пароль на сложность и выводить результат.

<?php
	$do = $_GET['do'];
	switch($do) {
		case 'check_password_strength':
		$password = $_GET['pass'];
		$strength = 0;
		// буквы (маленькие)
		if(preg_match("/([a-z]+)/", $password)) {
			$strength++;
		}
		// буквы (большие)
		if(preg_match("/([A-Z]+)/", $password)) {
			$strength++;
		}
		// числа
		if(preg_match("/([0-9]+)/", $password)) {
			$strength++;
		}
		// символы
		if(preg_match("/(W+)/", $password)) {
			$strength++;
		}
		header('Content-Type: text/xml');
		header('Pragma: no-cache');
		echo '<?xml version="1.0" encoding="UTF-8"?>';
		echo '<result><![CDATA[';
		switch($strength) {
			case 1:
			echo '<div style="width: 25%" id="password_bar">Очень легкий</div>';
			break;
			case 2:
			echo '<div style="width: 50%" id="password_bar">Легкий</div>';
			break;
			case 3:
			echo '<div style="width: 75%" id="password_bar">Сложный</div>';
			break;
			case 4:
			echo '<div style="width: 100%" id="password_bar">Очень сложный</div>';
			break;
		}
		echo ']]></result>';
		break;
		default:
		echo 'Error, invalid action';
		break;
	}
?>

После того, как оба файла будут сохранены и загружены на сервер, Вы можете посмотреть результат.

Вот и все! Спасибо за внимание!

Просмотров: 1551      Опубликовал: Евгений Фединчик      Дата: 08.06.2010 14:32:24
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

    Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.

    Комментарии:

    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa