Определение сложности пароля
В этом уроке мы с Вами создадим индикатор сложности паролей. Эта модификация поможет Вашим пользователям создавать более безопасные пароли при заполнении формы регистрации.
После того, как пользователь вводит желаемый пароль, скрипт делает запрос к другому 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;
}
?>
После того, как оба файла будут сохранены и загружены на сервер, Вы можете посмотреть результат.
Вот и все! Спасибо за внимание!
Последние уроки категории:
Сокращение PHP кода
Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...
Видимость переменных в PHP
В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.
Как читать Rss ленты?
Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.
Установка и настройка PHP+Apache
В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.
Как выбрать фреймворк
Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.




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