Авторизация и регистрация на PHP.


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

Авторизация и регистрация на сайте

Основные функции PHP, которые применяют в скриптах регистрации и авторизации.


И так... Практически все скрипты авторизации и регистрации - (дальше Рег и Авт), с первой строки начинаются с комбинации символов
<?php ... ?> - это уже известно.

Кому эти символы ничего не говорят, тогда я думаю все таки желательно изучить самое основное выражение в PHP:
<?php echo "Hello - World"; ?>    - и все что с ним связано!!!
Но даже кто не понял о чем речь, также нужно читать дальше. Просто в этом выражении при помощи функции echo(); выводится текст на монитор, а в самой программе текст заключается в двойные кавычки, за которыми стоит точка с запятой, что называется терминатор инструкций, главное не забывать его ставить, потому что скрипт будет останавливаться и будет вылезать синтаксическая ошибка, такое обычно происходит по невнимательности, но нервы портит не слабо!

Дальше, для того чтобы авторизованному пользователю можно было автоматически открыть доступ к закрытым страницам сайта, нужно чтобы сайт запомнил посетителя, точнее его логин и пароль, с тем, чтобы эти данные были доступны в любой части сайта, вот для этой цели и применяется функция
session_start(); - начало сессии
которая запускает сессию и держит в своем массиве (памяти) нужные нам логин и другую необходимую информацию, которую для определенного пользователя можно вытащить на всех страницах сайта в текущей сессии!!! Как становиться понятным, все страницы должны начинаться с этой функции! А обычно она вставляется в файл конфигураций, который подключается ко всем страницам. Перед повторным вызовом сессии в одном скрипте, предыдущую можно уничтожить при помощи функции
session_destroy() - разрушение, или уничтожение текущей сессии.

Думаю для понимания механизма сессии пока достаточно, главное узнавать сессию и представлять ее работу. А более подробно и доступно читайте в последующих постах.

Дальше в скриптах Рег и Авт обычно идет выбор - если пользователь авторизован, то показываем ему приветствие, или ссылку на выход.
Если нет - то выводится форма входа, или регистрации, как раз этот момент и решается при помощи сессий и функции !isset(); , а логика - функциями if() и else(),

например :
if(если яблоко грязное)
{ echo "его нужно помыть"; }
else ()
{echo "можно кушать"; }

а функция isset(); - определяет существование самой переменной, переданной из формы ввода, а знак ( ! ) определяет отрицание условия.

Например: if (!isset(S_POST['username'])) - если не существует переданной переменной методом ПОСТ со значением - username, то выводится форма ввода, else () - иначе обрабатываем входящие данные.

В данном участке скрипта обычно применяются следующие функции:

1) для начала нужно удалить пробелы в начале и конце переданной строки, это делается функцией trim();
Например - $user=trim(S_POST['username']) и сразу вытягиваем информацию из суперглобального массива S_POST и присваиваем его значение переменной $user, с которой и будет работать скрипт - так безопасней!

Дальше можно обрезать строку до нужной нам длинны, потому что данные могут передать не только через форму, в которой так же должны быть ограничения на количество вводимых символов, как и в базе данных, все это в целях безопасности, и здесь применяется функция substr();
например - $user= substr($user,0,12); - функция вернет подстроку, которая начинается с первого символа(0) и будет длинной 12 символов. А точнее строка - коловоротворотиткол - превратиться в строку - коловоротвор - удобная штука!

А теперь нужно сделать очистку кода от всех ненужных нам HTML - тегов, чтобы не сломали сайт. Для этого используются функции:
strip_tags(); - которая удаляет все HTML теги со строки.
htmlspecialchars(); - эта функция представляет введенный код в безопасное представление,
например выражение <script> УРА - ЭТО Я!!!</script> будет так и показано, а не УРА - ЭТО Я!!! НА ВВЕСЬ ЭКРАН. При разработке программ, эту функцию нужно применять обязательно!

При обработке капчи может применяться функция strtolower(); - которая преобразует строку в нижний регистр ( АВ - ав).

Для очистки E-mail обычно применяется функция preg_match(); - ее работу в двух словах объяснить трудно, нужно узучить регулярные выражения, но она пропустит только те данные - которые разрешены для ввода. Разбирать ее работу в этой статье не будем, просто примите на веру.

После очистки кода идут проверки на пустые значения, чтобы не заносить в базу данных пустые значения - это никому не нужно! Для такой операции можно применить функцию empty(); - которая проверяет, не пуста ли переменная, можно конечно проверить и так: if( $user !='';) - если $user не пуста, то продолжать работу скрипта.

Дополнительно, если вводятся числовые значения, то применяется функция ctype_digit(); - которая пропустит строку состоящую из цифр, иначе покажет FALSE.

Логин желательно проверять через функцию ctype_alnum(); - которая пропустит строку состоящую только из цифр и букв английского алфавита и является очень полезной функцией!

В некоторых случаях нужно определить длинну строки, тут будет незаменима функция strlen(); например:
if(strlen($out) !=12) - если переменная не равна 12,
{$out= substr($out,0,12)} - то обрезаем до нужной длинны (12 знаков)

А все числовые значения желательно проверять функцией is_numeric(); которая проверяет, содержит ли строка число.

Практически для понимания работы скрипта авторизации и разбора скриптов регистрации на сайте информации достаточно. Дальше идет участок кода, отвечающий за внесение данных в базу данных, что и выполняет регистрацию нового посетителя. Работу данного участка рассмотрено в статье о запросах в базу данных. А в следующей серии статьей я опубликую скрипты регистрации и аутентификации, в которых можно будет подробно разобраться и поставить на свой сайт.

по материалам сайта kapon.com.ua 17 07 2011

Поделитесь ссылкой на статью...


Всего комментариев - 8.    Можете оставить свой комментарий.

KirApseuspith   2013-02-14 20:50:13   сайт автора - http://Motones.ru

Всякое бывает, может Ваш блог поднимется в рейтинге Яндекса за такое пост. Посмотрим.

Soyprophomeox   2013-02-16 06:37:03   сайт автора - http://dp.tj/

Да, проблема описанная в посте существует уже давно. Но кто ее будет решать?

админ   2013-02-18 20:10:45   сайт автора -

Как всегда нужно обучать себя, только тогда можно максимально себя защитить!

Igor-annuatGor   2013-03-06 18:32:54   сайт автора - http://www.itranspark.ru/

Очень хороший портал, но хотелось бы видеть версию для мобильных телефонов.

plaUglahaffig   2013-03-08 22:26:19   сайт автора - http://tih-info.ru

Вы знаете редко сейчас кто пишет по данной тематике, очень приятно читать, я бы советовала картинок добавить еще!

админ   2013-03-12 21:03:01   сайт автора -

Для plaUglahaffig - спасибо, за картинки - исправлюсь!

админ   2013-03-12 21:06:58   сайт автора -

Для Igor-annuatGor - спасибо за впрос, по поводу мобильной версии, работаем над данной темой.

DimmoS   2013-03-16 10:57:15   сайт автора - http://wap4web.ru

неплохо было бы добавить пару примеров для начинающих юзеров


   Login *
   E-mail *
   URL (не обязательно)
- подписаться на сообщения        - я не спамер