Налаштування обладнання та програмного забезпечення

Безсилий auth php. HTTP Встановлення захисту на сторінку використовуючи MySQL та PHP

Вчимося робити просту аутентифікацію користувачів на сайті. На сайті можуть бути сторінки лише для авторизованих користувачів і вони будуть повноцінно функціонувати, якщо додати до них блок аутентифікації. Щоб його створити, потрібна база даних MySQL. Вона може мати 5 колонок (мінімум), а може і більше, якщо ви хочете додати інформацію про користувачів. Назвемо базу даних "Userauth".

Створимо в ній такі поля: ID для підрахунку числа користувачів, UID для унікального ідентифікаційного номера користувача, Username для імені користувача, Email для його адреси електронної поштита Password для пароля. Ви можете використовувати для авторизації користувача і вже наявну базу даних, тільки, як і у випадку з новою базою даних, створіть в ній наступну таблицю.

Код MySQL

CREATE TABLE `users` (`ID` int (11) NOT NULL AUTO_INCREMENT, `UID` int (11) NOT NULL, `Username` text NOT NULL, `Email` text NOT NULL, `Password` text NOT NULL, PRIMARY KEY (`ID`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Тепер створимо файл "sql.php". Він відповідає за підключення до бази даних. Цей код, по-перше, створює змінні для сервера та користувача, коли він підключається до сервера. По-друге, він вибере базу даних, у разі "USERAUTH". Цей файл потрібно підключити до "log.php" і "reg.php" для доступу до бази даних.

Код PHP

Далі сторінка входу, хай вона називається "login.php". По-перше, вона перевіряє введені дані про наявність помилок. Сторінка має поля для імені користувача, пароля, кнопку надсилання та посилання для реєстрації. Коли користувач натисне кнопку «Вхід», форма буде оброблена кодом із файлу "log.php", а потім відбудеться вхід до системи.

Код PHP

форма входу

Ім'я користувача
Пароль
Реєстрація

Потім пишемо скрипт для входу до системи. Назвемо його "log.php". Він має функцію для очищення вхідних даних від ін'єкцій SQL, які можуть зіпсувати ваш скрипт. По-друге, він отримує дані форми та перевіряє їх на правильність. Якщо вхідні дані правильні, скрипт надсилає користувача на сторінку авторизованих користувачів, якщо ні – встановлює помилки та надсилає користувача на сторінку входу.

Код PHP

Зробимо сторінку реєстрації, назвемо її "register.php". Вона схожа на сторінку входу, тільки має на кілька полів більше, а замість посилання на реєстрацію – посилання на login.php на випадок, якщо користувач вже має обліковий запис.

Код PHP

Форма регістрації

Ім'я користувача
E-mail
Пароль
Повтор пароля
У мене є обліковий запис

Тепер зробимо скрипт реєстрації у файлі "reg.php". До нього буде включено "sql.php" для підключення до бази даних. Використовується та сама функція, що й у скрипті входу для очищення поля введення. Встановлюються змінні для можливих помилок. Далі – функція створення унікального ідентифікатора, який ніколи раніше не надавалися. Потім витягуються дані з форми реєстрації та перевіряються. Відбувається перевірка, що адреса електронної пошти вказана в потрібному форматі, а також, чи правильно вказано пароль. Потім скрипт перевіряє, чи немає в базі даних користувача з таким самим ім'ям, і, якщо є, повідомляє про помилку. І, нарешті, код додає користувача до бази даних.

Код PHP

Ще потрібно зробити скрипт для виходу користувача із системи. Він припиняє сесію для користувача з цим унікальним ідентифікатором та ім'ям, а потім перенаправляє користувача на сторінку входу до системи.

Код PHP

І, нарешті, можна використовувати скрипт "auth.php", щоб зробити сторінки доступними тільки для авторизованих користувачів. Він перевіряє дані входу та, якщо вони вірні, дозволяє користувачеві переглядати сторінки, а якщо ні, просить авторизуватися. Крім того, якщо хтось спробує зламати сайт створивши одну із сесій, її буде перервано, як у загальному випадку.

Код PHP

Одна з умов у коді вище є предметом питання у .

Наступний код потрібно вставити на сторінку для авторизованих користувачів, вона називається наприклад "member.php", а у Вас може називатися як завгодно.

Код PHP

Вам дозволено доступ до цієї сторінки. Вийти ( )

Аутентифікація користувачів готова!

Доброї доби друзі! Давай з Вами розглянемо реєстрацію користувачів на PHP. Для початку давайте визначимо умови для нашої реєстрації користувачів:

  • Пароль шифруємо за допомогою алгоритму MD5
  • Пароль будемо "солити"
  • Перевірка на зайнятість Логін
  • Активація користувача листом.
  • Запис та зберігання даних у СУБД MySQL

Для написання даного скриптунам потрібно зрозуміти, що таке реєстрація користувача. Реєстрація користувача – це отримання даних реального користувача, обробка та зберігання даних.

Якщо пояснювати простими словамито реєстрація це лише запис і зберігання певних даних за якими ми можемо авторизувати користувача в нашому випадку - це Логін і Пароль.

Авторизація – надання певній особі чи групі осіб прав на виконання певних дій, а також процес перевірки даних прав при спробі виконання цих дій. Простіше кажучи, за допомогою авторизації ми можемо розмежувати доступ до того чи іншого контенту на нашому сайті.

Розглянемо структуру каталогів скриптів реалізації нашої реєстрації з авторизацією. Нам потрібно розбити скрипти на логічні складові. Модулі реєстрації та авторизації ми помістивши в окремий каталог. Також в окремі каталоги ми помістимо підключення до бази даних MySQL, файл з користувальницькими функціями, файл стилів CSSі наш шаблон HTML. Ця структурадозволяє швидко орієнтуватися у скриптах. Уявіть собі, що у вас великий сайт з купою модулями і т.д. і якщо не буде порядку, то буде дуже складно щось знайти в такому бардаку.

Так як ми зберігатимемо всі дані в СУБД MySQL , то давайте створимо невелику таблицю в якій зберігатимемо дані про реєстрацію.

Для початку необхідно створити таблицю в базі даних. Таблицю назвемо bez_reg, де bez - це префікс таблиці, а reg назва таблиці.

Структура таблиці: bez_reg -- -- Структура таблиці `bez_reg` -- CREATE TABLE IF NOT EXISTS `bez_reg` (`id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(200) NOT NULL, `pass` varchar( 32) NOT NULL, `salt` varchar(32) NOT NULL, `active_hex` varchar(32) NOT NULL, `status` int(1) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; Тепер створимо основні скрипти для подальшої роботи.

Файл INDEX.PHP

Файл CONFIG.PHP

  • less/reg/?mode=auth">Увійти Сподобалася стаття?
    друкувати
    Чи була ця стаття корисною?
    Так
    Ні
    Дякую за ваш відгук!
    Щось пішло не так і Ваш голос не був врахований.
    Дякую. Ваше повідомлення відправлено
    Знайшли у тексті помилку? Виділіть її, натисніть Ctrl+Enter