8. Гостьова книга на PHP
Первинні вкладки
Напишіть програму, яка б реєструвала користувачів до гостьової книги, виводила б імена зареєстрованих на сторінку.
1. Опишіть заголовок сторінки:
1 2 3 4 5 6 7 | html> <head> <title>Guest book</title> </head> <body> </body> </html> |
2. Створіть форму, яка складається з трьох елементів: двох текстових полів, кнопки:
1 2 3 4 5 6 7 | <form action="<?=$_SERVER['PHP_SELF']?>" method="post"> Imja: <input type="text" name="first_name"><br /> Prizviwe: <input type="text" name="last_name"><br /> <input type="submit"> </form> |
3. Визначіть статичну змінну для зберігання імені файлу:
1 2 | define("GUEST_LOG", "guest.log"); // змінна для зберігання інформації у файлі |
4. Як тільки приходить ім'я користувача, форматуємо його:
1 2 3 4 5 | if($_SERVER['REQUEST_METHOD'] == "POST"){ /* приймаємо ім'я і фальтруємо його */ $first_name = trim(strip_tags($_POST['first_name'])); /* приймаємо прізвище і фальтруємо його */ $last_name = trim(strip_tags($_POST['last_name'])); |
5. Якщо в змінних зберігаються дані, то записуєм їх в файл:
1 2 3 4 | if($first_name and $last_name){ $user = "$first_name $last_name\n"; } file_put_contents(GUEST_LOG, $user, FILE_APPEND); |
6. Перезапитуємо сторінку для того, щоб уникнути копіювання даних і завершуємо виконання коду php:
1 2 3 | header("Location: index.php"); /* переривання роботи php */ exit; |
7. Налаштовуємо зчитування з файла. Перевіряємо, чи існує він:
1 2 3 | if(file_exists(GUEST_LOG)){ } |
8. Читаємо змінні з файлу, переводимо їх в формат масиву та виводимо у зворотньому порядку:
1 2 3 4 | /* перевірка, чи це дійсно масив */ if(is_array($users)){ /* вивід у зворотньому порядку */ $users = array_reverse($users); |
9. Циклом foreach виводимо всі дані:
1 2 3 4 5 | echo "<ol>"; foreach($users as $user){ echo "<li>$user</li>"; } echo "</ol>" |
10. Додайте декілька користувачів і ви побачите результат на екрані:
Контрольні питання:
1. Як визначаються константи?
2. Як проводиться фільтрація даих отриманих методом POST?
3. Як вивести масив у зворотньому порядку?
4. Якими способами можна записувати дані в файл?