Сьогодні я опишу, мабуть, кращу завдання для новачків мови програмування PHP - Гостьова книга. На мій погляд це завдання є найпростіших, але при цьому дозволяє дізнатися всі основні особливості роботи з PHP і базою даних MySQL. Крім цього, дана задача до нескінченності розширювана, що дозволяє відточувати нові технології.
Опис і рішення даного завдання буде написано відразу тут, без перевірок на працездатність, тому, можливо, десь є помилка. Зроблено це не через мою ліні, а знову таки через додаткового тренування, при створенні гостьової книги Вами. Так само представлене рішення буде трохи «кривовато», але про це вже в кінці цієї статті в розділі «Самостійна робота».
Якщо Ви зовсім не знаєте як працювати з PHP, то для початку раджу прочитати замітку PHP - з чого почати.
Уже з файлів, можна відразу зрозуміти, за що вони будуть відповідати: index.php - сторінка входу, registration.php - сторінка реєстрації, book.php - сторінка гостьової книги.
Заходимо в phpMyAdmin. Створимо там базу з ім'ям gb. У цій основі створимо таблицю Users з наступними полями:
З базою даних розібралися. Тепер переходимо до файлу registration.php. Підбивши підсумок вищевикладеному маємо:
Трохи про коді. Як Ви вже помітили, тут присутній PHP. Описувати форму я вже не буду, але як ми бачимо, тут дані форми надсилаються на ту ж сторінку, де розташована дана форма. Іншими словами файл registration.php шле дані сам на себе. Так робити ніхто не забороняє, однак використовувати це можна не завжди, так як це сильно псує читабельність коду. Однак з іншого боку це наочно демонструє можливості мови PHP. По суті наша сторінка розділена на два випадки. Перший випадок це коли на сторінку шлються дані POST запитом, другий випадок, коли на сторінку ніякого POST запиту не послано. У другому випадком ми покажемо форму для реєстрації, а першому ж почнемо виконувати перевірки надісланих даних. Як видно дані шлються у вигляді асоціативного масиву (тобто масиву, індексами якого є рядки). Причому індекси збігаються з назвами полів input, зазначеними в формі відправки даних. Тобто якщо ми пишемо
то у нас, при відправці цих даних POST запитом, буде мінлива
Так само варто зауважити, що ніяких перевірок на повтор логіна ми не робимо. Дана перевірка буде здійснюватися на рівні бази даних, так як поле логін позначено як унікальне.
Тепер останнє. Залишилося зробити саму гостьову книгу. Трохи міркувань. Так як гостьова книга працює за логіном і паролем, то перше що нам доведеться робити - перевіряти введений логін і пароль на наявність в базі. Так як ми вирішили додавати повідомлення так само в файлі book.php, то очевидно слідом повинна здійснюватися процедура додавання повідомлення. Ну і в самому кінці відображення всіх повідомлень. (Якщо зробити додавання повідомлення, після їх відображення, то доданий повідомлення відобразиться тільки після перезавантаження сторінки). маємо:
Ось по суті і все. Якщо код 100% робочий, добре. Якщо немає, то раджу Вам постаратися самостійно виправити помилки. Тепер обіцяний розділ.