Веб-майстер як створити свій сайт

Кожному з прав

структура БД

Для наочної демонстрації розмежування рівнів доступу відмінним прикладом послужить скрипт новин. Він буде показувати на сторінці новини, які зберігаються в таблиці і завантажуються з БД. Також наша БД буде містити ще одну таблицю, в якій будуть зберігатися імена користувачів і інформація про їхні права доступу. Таким чином, одні користувачі зможуть, наприклад, додавати новини, іншим буде вирішуватися коригувати і видаляти новини. Будуть і такі користувачі, у яких права доступу дозволять робити все, аж до створення і видалення користувачів.

Нам знадобиться БД, створимо і назвемо її news_service, виконавши такий sql-запит:

Тепер створимо таблицю для зберігання новин. Для цього слід виконати наступний sql-запит:

Тут ми маємо чотири поля. Ключове поле id служить прив'язкою до новини. В поле header зберігається заголовок новини. Сам текст новини буде зберігатися в полі text. Поле date служить для інформації про дату розміщення новини на сайті. Тепер розберемо структуру таблиці auth, яка відповідає за права користувачів в системі. Для створення таблиці виконаємо такий sql-запит:

У ключове поле login записується ім'я користувача. Поле pass зберігає md5-хеш пароля. Всі наступні поля визначають доступ до функцій і можуть мати лише значення true (дозволено) або false (заборонено). За замовчуванням, всі поля мають значення false, тобто функції заборонені. Поля визначають такі властивості:

  • add - додавання новин
  • edit - редагування новин
  • delete - видалення новин
  • add_user - створення нового користувача
  • del_user - видалення користувача

Веб-майстер як створити свій сайт

Напишемо в коді стандартні рядки для підключення до сервера БД:

Робота з новинами

Тепер будемо відловлювати можливі дії користувача. Спочатку, виконаємо додавання новин:

Якщо скрипт отримує на обробку текст і заголовок для додавання, а також має права на додавання нових новин, то скрипт додає новий запис в таблицю. Перше поле ми не заповнюємо, так як воно заповнюється автоматично, далі записуємо заголовок і текст новини. За допомогою функції date () ми записуємо поточну дату в форматі дд.мм.рррр, яка відображає дату додавання новини.

Обробка редагування новини:

Якщо передається відредагований заголовок і текст новини, а також активного користувача дозволено змінювати новини, то ми оновлюємо дані в таблиці новин. Ідентифікація необхідної новини здійснюється по ключовому полю id, що вказує на номер новини, яку ми редагуємо.

Видалення користувача з системи:

Якщо введено ім'я користувача, якого потрібно видалити і у користувача є на це права, запис із зазначеним логіном буде видалена з таблиці.

Додавання нового користувача в систему:

При створенні нового користувача, перевіряється, чи має право на такі дії поточний користувач. Всі права користувача визначаються змінними: $ add, $ edit, $ del, $ del_user і $ add_user. Спочатку, все заборонено, тобто, значення змінних рівні false. Отримані дані з форми, визначають нові права користувача. Остання перевірка, на збіг імен в таблиці. Якщо все вказано вірно, то в таблицю auth вноситься новий запис. Тепер напишемо відображення форм, для кожного з оброблюваних дій.

Форма для додавання новини:

Веб-майстер як створити свій сайт

Форма редагування новини:

Форма для редагування нічим не відрізняється, від форми додавання. Замість створення нового запису в таблиці, ми змінюємо вже існуючу новина. При завантаженні форми, вона відображається не порожній, а з поточними значеннями полів. При натисканні на кнопку "Змінити новина", нові дані заносяться в таблицю.

Відображення форми не потрібно, так як видалення відбувається при натисканні на посилання «Видалити», яка знаходиться поруч з новиною. Якщо права доступу дозволяють видалення новин, то запис з вказаним id буде видалена з таблиці.

Виведення списку всіх користувачів:

Видалення користувача з системи:

Форма для видалення складається з рядка для введення імені і кнопки "Видалити" (рис. 3).

Трохи складніше буде виглядати форма для створення нового користувача:

Для створення нового користувача в системі, потрібно вказати його логін, пароль, а також права доступу в системі. На малюнку 4 показана відображається при цьому форма.

Веб-майстер як створити свій сайт

Веб-майстер як створити свій сайт

висновок

Схожі статті