Интерактивность с пользователями — одна из самых важных задач web-программиста.
В данном посте я хотел бы остановится на блоке «авторизация», но данный «метод» можно применить для множества различных задач.
Идея заключается в том, что бы при каждом нажатии клавиши проверять логин (введенный пользователем) с логинами хранящимися в БД. В том случае, если введенный логин соответствует логину хранимому в БД, подсвечивать input зеленным цветом, в противном случае — красным.
Как это выглядит:


Поиграться можно здесь — nikitascr.ks8.ru/for_habr/authorization
Итак, взглянем на код:
Ничего особо сложного и интересного.
Данный скрипт сравнивает то, что ввел пользователь с данными который хранятся в БД, и если пользователь ввел все верно возвращает «ok» Ajax скрипту, в противном случае возвращает «error».
И как я уже писал выше, тестовый полигон — nikitascr.ks8.ru/for_habr/authorization
В данном посте я хотел бы остановится на блоке «авторизация», но данный «метод» можно применить для множества различных задач.
Идея заключается в том, что бы при каждом нажатии клавиши проверять логин (введенный пользователем) с логинами хранящимися в БД. В том случае, если введенный логин соответствует логину хранимому в БД, подсвечивать input зеленным цветом, в противном случае — красным.
Как это выглядит:


Поиграться можно здесь — nikitascr.ks8.ru/for_habr/authorization
Итак, взглянем на код:
1) Сss
input { outline:none; transition: all 0.2s ease-in-out; -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; } input:focus { border: #40c0ff; box-shadow: 0 0 10px rgba(81, 203, 238, 1); -webkit-box-shadow: 0 0 10px rgba(81, 203, 238, 1); -moz-box-shadow: 0 0 10px rgba(81, 203, 238, 1); }
Ничего особо сложного и интересного.
2) PHP скрипт, который все это обрабатывает
<?php if(isset($_POST['login'])){ //В БД все в нижнем регистре, поэтому перевожу $login = strtolower($_POST['login']); //Файл с настройками коннекта к БД require_once('stores.php'); if (!$database = mysqli_connect($db_host, $db_user, $db_password, $db_db)){ echo 'Ошибка соединения к БД!'; exit();} //Открываем соединение else{ if(!$res = mysqli_query($database, "SELECT `login` FROM `users`")) { echo 'Ошибка запроса на выборку данных!'; exit(); } else { while($all_login = mysqli_fetch_assoc($res)) if($all_login[login] == $login) //Если в БД есть такой логин, то переменная login_true = 1; $login_true = 1; if($login_true == 1) echo 'ok'; else echo 'error'; } } } ?>
Данный скрипт сравнивает то, что ввел пользователь с данными который хранятся в БД, и если пользователь ввел все верно возвращает «ok» Ajax скрипту, в противном случае возвращает «error».
И собственно Ajax скрипт (с помощью фреймворка JQuery)
<sсript type="text/javascript" src="jquery-1.6.2.min.js"> </sсript> <sсript type="text/javascript"> //При каждом нажатии клавиши в input элементе $('#a_login').keyup(function() { //Берем данные с input Элемента login_user = $('#a_login').val(); $.ajax({ url : 'authorization.php', type : 'POST', //метод запроса //Передаем введенные пользователем данные в PHP скрипт data : {login : login_user}, //если PHP отработал верно success : function(xhr, data, textStatus){ if(xhr == 'ok'){ //Если логин введен верно $('#a_login').css('box-shadow','0 0 10px rgba(0, 255, 0, 1)'); $('#a_login').css('-webkit-box-shadow','0 0 10px rgba(0, 255, 0, 1)'); $('#a_login').css('-moz-box-shadow','0 0 10px rgba(0, 255, 0, 1)'); } else if(xhr == 'error') { //Если такого логина не существует $('#a_login').css('box-shadow','0 0 10px rgba(255, 0, 0, 1)'); $('#a_login').css('-webkit-box-shadow','0 0 10px rgba(255, 0, 0, 1)'); $('#a_login').css('-moz-box-shadow','0 0 10px rgba(255, 0, 0, 1)'); } //При какой то ошибке else alert('Ошибка авторизации!'); }, //В случае, если PHP скрипт отработал с ошибкой error : function(xhr, textStatus, errorObj){ alert('Произошла критическая ошибка!'); }, }); }); <sсript>
И как я уже писал выше, тестовый полигон — nikitascr.ks8.ru/for_habr/authorization
