Създаване на база данни
Създаване на нова база данни, наречена TESTDB. използвате следната заявка от привилегирован потребител.
За да работите с базата данни, добавете един и същи потребител TESTDB и да му даде необходимите права.
Структурата на таблицата за потребители
За да съхранявате на потребителя да създаде база данни, данните за маса потребители. използвате следната заявка.
- идентификатор - уникален идентификационен номер на потребител
- потребителско име - вход
- парола - криптиран парола
- сол - сол за криптиране на паролите
Структурата на файлове и директории
Създайте директория «PHP удостоверяване е» за нашия проект. Добавяне на следните файлове и папки:
регистрация на потребител
Когато се регистрира, потребителят трябва да въведете потребителско име и парола и да потвърдите паролата. След изпращане на формуляра ще направим проверка на съществуването на Въведените данни за вход. Ако потребителското име вече съществува - да уведоми посетителя.
Цялата работа с базата данни ще се случи чрез разширяване ЗНП за PHP. Той е включен в стандартната PHP библиотека от версия 5.1.
Основната логика на приложението е в класа / Auth.class.php файла. Нека подробно съдържанието.
регистрация алгоритъм
За да създадете нов потребител, използвайки метода на потребителя :: създадете (). който получава потребителско име и парола като аргументи.
Първото нещо, за да се провери съществуването на потребителя. За да направите това, използвайте метод за потребителя :: getSalt (). който избира от основата на "сол" на вход на потребителя. Солта е необходимо да се усложни избора на потребителски пароли в случай на изтичане на база.
Ако не съществува потребителя - хвърли изключение. В противен случай, ние се генерира нов сол и хеш на паролата към него. След това, с молба за добавяне на данни към базата данни. Ако заявката не се осъществи, sootvetstvuyuee отпечатате съобщение и да излезете от сценария. Такава ситуация може да възникне, когато го изключвате MySQL сървър или вътрешна грешка.
Ако даден потребител е създаден ussheshno, Потребителят :: създадете () връща уникален идентификатор. Това е нормално цифрово поле, което се увеличава автоматично при добавяне на записи на масата.
удостоверяване алгоритъм
С цел да се провери правилното потребителско име и парола, използвайте потребителя :: разреши метод (). Първото нещо, което се провери наличието на даден потребител се опитва да избере сол от основата. Ако не бъде намерен на потребителя, веднага се връща лъжа. В противен случай, хеш на паролата на солта преминава през Потребителя :: функцията passwordHash (). След това, да направите избор от базата данни с помощта на потребителско име и парола хашиш.
Ако резултатът от заявката беше празен, потребителското име и паролата са правилни. Запазване на данни polzotelskie в обекта на потребителя клас. Напиши идентификатора на потребителя в сесията през Потребителят :: метод saveSession (). Ако първият аргумент - $ помня. премине верен на нея. идентификатор на сесия се записва в бисквитки. Той няма да въвеждате паролата всеки път, когато рестартирате браузъра.
Работа с форми чрез Ajax
За да се справят с Аякс искания създават AjaxRequest клас. Запишете го в класовете / AjaxRequest.class.php по делото.
Този клас ще улесни нашата обработка на данните, изпратени от формуляра за употреба. Като дизайнер, той получава масив искане на данни ($ _GET или $ _POST).
се изисква getRequestParam () метод за получаване на параметър от искането. Той прави допълнителна проверка за наличието на набор от ключови и връща нула. ако искането не съдържа необходимите данни.
функция setResponse () се използва за получаване на отговор. setFieldError () метод е необходимо за предаване на съобщение за грешка в областта на форма.
За да се върнете в отговор на потребителя, ние използваме метод showResponse. Той генерира поредица от JSON-форматиран, задава желаната HTTP-хедърите и връща данните на клиента.
В ajax.php файл настъпят пряко чрез AjaxRequest класа на обработка на заявката.
Формат JSON-отговор
От страната на клиента, трябва да сме в състояние да покажат резултат от операцията в четима за човека форма. За да направите това, ние се върне JSON отговор в следния формат:
Създаване на файла JS / Аякс form.js. Той ще изпрати събитието, за да прихване всички форми с Аякс клас и изпращане на асинхронен заявка към сървъра. Изходния код на Ajax form.js.
За сценария нуждае JQuery 2.0.3 (е в архива на източника).
Тези обратни повиквания в които действат само ако отговорът на валидиране е успешно. метод script.ajaxForm.validate проверява реакцията на името на полето с грешка. Ако съществува такава област, podstvechivaet го и показва текста на грешката.
Update: Фиксирана грешки, свързани с хешираното парола, обикновено спечелени функцията "Запомни ме". Благодарим Ви, че потребителят santas156 намерени грешки.
Оценка - 4.9 Гласове - 27
Свързани статии