Пишем простой скрипт авторизации на PHP

12 ответ(ов) в теме
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
22:54

Продолжая цикл статей для новичков в PHP, решил сегодня поделиться примером простой авторизации на PHP.
Для доступа пользователя к приватным директориям и данным на сайте (да или просто админке), создаются скрипты авторизации, в которых и прописываются права тех или иных пользователей сего сайта.
Поэтому, для примера можно разобрать, как это реализуется средствами PHP.
Естественно сей пример посвящен, начинающим постигать азы этого (вели-кого и могу-чего) языка.
Для сохранения параметров пользователя при переходе по страницам сайта (смея предположить, что их больше чем одна:) используются два варианта:
1) Использование файлов куки;
2) Сеансы и сеансовые переменные.
В нашем примере мы будем использовать сеансы. И так:
session_start(); используется для запуска сеанса, в случае удачного выполнения возвращает true, иначе false;
session_register сообщает интерпретатору PHP какие переменные необходимо сохранить в сеансе. В качестве параметра передается имя переменной.
Так, что садимся по удобнее в кресло или стул, запускаем текстовый редактор), а в моем случае это PhpExpertEditor, и приступаем к работе.
Создаем документ authorize.php и вписываем туда:
<br><?php<br>// два слеша используются для комментов в коде PHP<br> session_start();<br> session_register("username");<br> session_register("password");<br>?> <br><!-- html имеет свои представления о возможностях комментирования в коде --><br><form action="authorize.php" method="post"><br> <B>Авторизация</B><br> <BR>Логин: <input name="user"><br> <BR>Пароль: <input type="password" name="pass"><br> <P><input type="submit" value="Жми"><br></form><br><br><?php<br><br>// функция isset() определяет установленна ли переменная user и если да, то присваивает введенные пользователем<br>// значения в переменные $username и $password<br>if (isset($user))<br>{<br> $username=$user;<br> $password=$pass;<br>}<br><br>// Условный оператор if проверяет соответствие введенных параметров истинным значениям<br>// и если данные введены верно разрешает пользователям производить определенные манипуляции:)<br> if (($username=="kroot") and ($password=="777"))<br> {<br> print("<B>Приветствую тебя: $username<B>");<br> print("<P><A HREF="authorize.php?id=1">Создать объект</A>");<br> print("<P><A HREF="authorize.php?id=2">Удалить объект</A>");<br><br> if ($id==1)<br> {<br> // Создать объект<br> print("<P><I>Объект создан</I>");<br> }<br><br> if ($id==2)<br> {<br> // Удалить объект<br> print("<P><I>Объект удален</I>");<br> }<br> }<br> else print ("<B>Необходимо авторизоваться!<B>");<br><br>?><br>

Вот и все! Осталось вбить этот код в документ при помощи текстового редактора или PhpExpertEditor (как у меня на пример) и нажать F9, вводим в окно сценария параметры:
Логин: kroot (почти, как root:)
Пароль: 777
Для дальнейшего развлечения можно немного по нажимать на ссылки)
Благодаря использованию сеанса имя пользователя (при нажатии на ссылки) остается неизменным.
Пример PHP скрипта можно скачать ниже:

Редакции сообщения
0
moto
не в сети 6 часов
На сайте с 12.03.2017
Администратор
Тем 3411
Сообщения 13605
0
23:08

Диман, ты как всегда в своем стиле:) Думаю материал будет полезен и мне, как ученику начальных классов языка Php 🙂

Кстати вопрос, зачем дуюлировать пример в рар архиве, когда он выложен в виде кода прям в сообщение?

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
23:35

Ну, мало -ли чего, ведь скопи-пастить тоже можно криво 🙁 .
А то пожалуйста, свеже - проверенный, рабочий пример 🙂 .

Редакции сообщения
0
Форум
Гость
0
19:53

Привет, если авторизованному пользователю нужно перейти на другую страницу. Скажем на страницу мой профиль, информация об этом пользователе должна отображаться.
Скажем, что я создал файл myprofil.php и хочу чтобы информация об авторизованном пользователе отображалась на его профиле, то в этом файле тоже нужно прописать этот код?
<?php
session_start();
session_register("username");
session_register("password");
?>

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
20:40

Нет, там достаточно прописать:
<br><?php<br> session_start();<br>?><br>
Можешь создать файл myprofil.php с таким содержанием:
<br><?php<br> session_start();<br>?><br><br><HTML><br><HEAD><br><TITLE> Профиль </TITLE><br></HEAD><br><br><BODY><br><br><?php<br> if (!isset($username))<br> {<br> die("Autorize require");<br> }<br> print("<P>Здарова: $username");<br>?><br><br></BODY><br><HTML><br>
И добавить в файл authorize.php
Следующий код, а лучше совсем заменить на это:
<br><?php<br> session_start();<br> session_register("username");<br> session_register("password");<br>?><br><form action="authorize.php" method="post"><br> <B>Авторизация</B><br> <BR>Логин: <input name="user"><br> <BR>Пароль: <input type="password" name="pass"><br> <P><input type="submit" value="Жми"><br></form><br><br><?php<br><br>// функция isset() определяет установленна ли переменная user и если да, то присваивает введенные пользователем<br>// значения в переменные $username и $password<br>if (isset($user))<br>{<br> $username=$user;<br> $password=$pass;<br>}<br><br>// Условный оператор if проверяет соответствие введенных параметров истинным значениям<br>// и если данные введены верно разрешает пользователям производить определенные манипуляции:)<br> if (($username=="kroot") and ($password=="777"))<br> {<br> print("<B>Приветствую тебя: $username<B>");<br> print("<P><A HREF="authorize.php?id=1">Создать объект</A>");<br> print("<P><A HREF="authorize.php?id=2">Удалить объект</A>");<br> print("<P><A HREF="authorize.php?id=3">Профиль</A>");<br> if ($id==1)<br> {<br> // Создать объект<br> print("<P><I>Объект создан</I>");<br> }<br><br> if ($id==2)<br> {<br> // Удалить объект<br> print("<P><I>Объект удален</I>");<br> }<br> // перебрасываем пользователя на myprofil.php<br> if ($id==3)<br> {<br> header('Location: myprofil.php');<br> }<br> }<br> else print ("<B>Необходимо авторизоваться!<B>");<br><br>?><br>

Редакции сообщения
0
Форум
Гость
0
21:53

Master-It, а можно исходник? Код: ссылка новичка: javascript:void(0); [не активна] я не понял что это такое. Спасибо.

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
22:05

Лови!

Редакции сообщения
0
moto
не в сети 6 часов
На сайте с 12.03.2017
Администратор
Тем 3411
Сообщения 13605
0
22:16

pandor сказал(а)
Код: ссылка новичка: javascript:void(0); [не активна]

п.4.23. Публикация внешних ссылок в сообщениях разрешена, только после достижения нижнего лимита сообщений:
- При достижении 10 сообщений пользователи смогут публиковать внешние ссылки
[Исключая любые внутренние ссылки вида http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru]
- При достижении 50 сообщений внешние ссылки будут размещаться активными
[Исключая любые внутренние ссылки вида http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru]
- При достижении 30 сообщений внешние ссылки не будут иметь свойство rel="nofollow"
[Исключая любые внутренние ссылки вида http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru" target="_blank" rel="nofollow"> http://knowpc.ru]

ссылка новичка уйдет, когда будет 50 сообщений на форуме, это автоматическая функция борьбы со спамерами.

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
22:30

Все понял pandor ;D
Спамерам - бой! bita
Во все важен порядок)
Это есть основа стабильности и дальнейшего процветания))

Редакции сообщения
0
moto
не в сети 6 часов
На сайте с 12.03.2017
Администратор
Тем 3411
Сообщения 13605
0
22:33

просто 50 сообщений дают понять, что за человек перед тобой, да и спамеры не будут писать так много сообщений, тут либо заинтересованность форумом либо упорство, но спамеры потратят больше времени на наполнение в одном месте, в то время как могут зарегитсья в 50 ресурсах 🙂

Редакции сообщения
0
Форум
Гость
0
22:36

Понятно, хотя я внешних ссылок не вставлял, но в ответах мне я видел Код: ссылка новичка: javascript:void(0); [не активна]. Конечно, нужно бороться спаммерами.
Master-It, спасибо за исходники. Изучаю их, если будет не понятно, напишу тут. Спасибо.

Редакции сообщения
0
Master-It
не в сети давно
На сайте с 23.07.2012
Участник
0
22:47

Да, на здоровье:)
А такой метод борьбы со спамом - это безусловно грамотный ход)
Тем более, что функция - автоматическая))
Меня тут один спамер уже за-долбал, раз десять пытается добавить одну и туже ссылку в каталог, даже несмотря на то, что я ее там опубликовал еще месяц назад??
Думаю принципиально удалить ее, выследить, и поставить ему БАН!

Редакции сообщения
0

Ваше имя *

Ваш E-mail *

не публикуется

Текст сообщения *