Система авторизации на php с капчей

Категория: PHP.

565656334222-7989170

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

Demo Архив с примером

Шаг-1 HTML

main_page.html


    Система авторизации на php с капчей
    
    


    
        {login_form}
    

    
    


Здесь всё просто, единственное тут присутствует ключ { login_form }, который мы будем использовать в дальнейшем.

login_form.html

    Войдите


    
        

Мое название сайта

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

Авторизация

            Логин:
            Пароль:
            {captcha}
            
            Забыли пароль?
        
    
    
        

Вы ещё не зарегистрировались? Присоединяйтесь!

        
Что дает вам регистрация? Это дает вам возможность стать полноправным членом нашего сайта.
Регистрация Скрыть эту панель $(document).ready(function() { $('#my_userarea').click(function(){ $('div#my_panel').slideToggle('slow'); return false; }); $('#my_close').click(function(){ $('div#my_panel').slideUp('slow'); return false; }); });

Воспользуйтесь логином «User1» или «User2» или «User3» и паролем «password» для входа

 

Этот файл представляет собой шаблон формы входа, состоящей из трёх полей. В 3 поле присутствует новый ключ { captcha}, который будет заменит контрольный вопрос.

logout_form.html

    Выход

Кнопка выхода.

Шаг 2. CSS

CSS / main.css

body{background-color:#888;margin:0;padding:0}
.example{position:relative;width:980px;height:700px;background-image:url(../images/background.jpg);border:1px #000 solid;margin:20px auto;padding:20px;-moz-border-radius:3px;-webkit-border-radius:3px}

.bar{background-color:#444;height:24px;padding:10px}
a#my_userarea{font-size:12px;position:relative;display:block;overflow:hidden;color:#909090;-webkit-border-radius:11px;-moz-border-radius:11px;text-decoration:none;border-radius:11px;background:url(../images/button-user-area.gif) repeat-x 0 0;text-shadow:#000 1px 1px;float:right;padding:4px 10px 3px}
#my_panel{background-color:#272727;border:1px solid #444;color:#999;font-size:.85em;z-index:1001;padding:15px;position:absolute;width:948px}
#my_panel .column{float:left;width:30%;padding:15px}
#my_panel .column h3{color:#fff}
#my_panel .login_form input,#my_panel .login_form label{margin-bottom:5px;display:block}
#my_panel input[type=text],#my_panel input[type=password]{width:200px}
#my_panel input[type=submit]{background:url(../images/button.png) no-repeat scroll right 0 transparent;width:72px;height:30px;color:#fff;border-width:0}
.more{background:url(../images/more-left.png) no-repeat scroll 0 0 transparent;cursor:pointer;display:block;float:right;padding-left:11px;text-align:center;text-decoration:none}
.more span{background:url(../images/more-right.png) no-repeat scroll right 0 transparent;color:#fff;display:block;height:30px;line-height:29px;padding:0 19px 0 8px}
.more:hover{text-decoration:none;background-position:0 bottom}
.more:hover span,#my_panel input[type=submit]:hover{background-position:right bottom}
#my_panel .close{text-align:center}
#my_panel .close a{color:#07BBE2;cursor:pointer}

Шаг 3. JS

Для нашего примера мы используем JQuery библиотеку (для эффекта скольжения)

js/jquery-1.4.4.min.js

Шаг 4. PHP

Наша самая важная часть проекта – php файл обработчик формы входа.

 index.php


В начале мы просто создаём экземпляр нашего классы и вызываем метод для вывода формы входа. В конструкторе классы мы определяем массив пользователей имеющих доступ к системе. Обратите внимание что у нас имя пользователя и пароль находятся в хеше. Мы используем SHA1 + MD5 методы кодирования вместе для более сильного шифрованию. Конечно не обязательно хранить информацию о пользователях в конструкторе классы, это могут быть и другие места, база данных или файлы. В дополнение к пользователям в конструкторе класса мы видим ещё один массив, это логика капчи.