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. Якими способами можна записувати дані в файл?