Практический пример: создание простого веб-приложения на PHP

Введение

В этой статье мы рассмотрим практический пример создания простого веб-приложения с использованием PHP. Наша задача — разработать простую контактную форму, которая будет собирать данные от пользователей и сохранять их в базе данных. Мы также удостоверимся, что данные, отправленные пользователями, будут проверены и защищены от потенциальных уязвимостей.

Шаг 1: Подготовка среды

Прежде чем мы начнем разрабатывать приложение, убедимся, что у нас установлен локальный веб-сервер (например, XAMPP или WAMP) и база данных (например, MySQL). Затем создадим новую базу данных с именем «contact_form» и таблицу «contacts», в которой будем хранить данные от пользователей.

Шаг 2: Создание файлов структуры проекта

Создадим основную структуру проекта. Наше веб-приложение будет состоять из следующих файлов:

  • index.php: главная страница с контактной формой и обработкой данных
  • config.php: файл конфигурации для подключения к базе данных
  • db.php: класс для взаимодействия с базой данных
  • thank_you.php: страница, которая будет отображаться после успешной отправки данных

index.php

<!DOCTYPE html>
<html>
<head>
    <title>Контактная форма</title>
</head>
<body>
    <h2>Контактная форма</h2>
    <form action="index.php" method="post">
        <label for="name">Имя:</label>
        <input type="text" id="name" name="name" required><br>

        <label for="email">Электронная почта:</label>
        <input type="email" id="email" name="email" required><br>

        <label for="message">Сообщение:</label><br>
        <textarea id="message" name="message" rows="4" cols="50" required></textarea><br>

        <input type="submit" value="Отправить">
    </form>
</body>
</html>

config.php

<?php
// Конфигурация базы данных
$host = 'localhost';
$username = 'ваш_пользователь';
$password = 'ваш_пароль';
$dbname = 'contact_form';
?>

db.php

<?php
require_once 'config.php';

class DB {
    private $conn;

    function __construct() {
        $this->conn = new mysqli($GLOBALS['host'], $GLOBALS['username'], $GLOBALS['password'], $GLOBALS['dbname']);
        if ($this->conn->connect_error) {
            die("Ошибка подключения к базе данных: " . $this->conn->connect_error);
        }
    }

    function __destruct() {
        $this->conn->close();
    }

    function insertData($name, $email, $message) {
        $name = $this->conn->real_escape_string($name);
        $email = $this->conn->real_escape_string($email);
        $message = $this->conn->real_escape_string($message);

        $sql = "INSERT INTO contacts (name, email, message) VALUES ('$name', '$email', '$message')";

        if ($this->conn->query($sql) === TRUE) {
            return true;
        } else {
            return false;
        }
    }
}
?>

thank_you.php

<!DOCTYPE html>
<html>
<head>
    <title>Спасибо за отправку</title>
</head>
<body>
    <h2>Спасибо!</h2>
    <p>Ваши данные успешно отправлены.</p>
    <a href="index.php">Вернуться на главную страницу</a>
</body>
</html>

Шаг 3: Создание контактной формы

Откроем файл index.php и создадим простую HTML-форму, состоящую из полей «Имя», «Электронная почта» и «Сообщение». Форма будет отправлять данные методом POST на этот же файл для их обработки.

Шаг 4: Обработка данных формы

В файле index.php добавьте следующий PHP-код перед тегом </body>:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];

    // Валидация данных, обработка ошибок и сохранение в базу данных
    require_once 'db.php';
    $db = new DB();
    if ($db->insertData($name, $email, $message)) {
        header("Location: thank_you.php");
        exit;
    } else {
        echo "Произошла ошибка. Пожалуйста, повторите попытку.";
    }
}
?>

Шаг 5: Работа с базой данных

Откройте файл db.php и определите класс для взаимодействия с базой данных MySQL.

Шаг 6: Создание страницы благодарности

Создайте страницу thank_you.php с простой информацией о том, что данные успешно отправлены.

Шаг 7: Тестирование приложения

Теперь, когда основной функционал готов, проведем тестирование приложения. Протестируем его на корректность обработки данных, наличие защиты от уязвимостей и правильное взаимодействие с базой данных.

Заключение

Мы успешно создали простое веб-приложение на PHP — контактную форму, которая собирает данные от пользователей, проверяет их на корректность и сохраняет в базе данных. Этот практический пример поможет начинающим программистам лучше понять основы PHP и его применение в разработке функциональных веб-приложений. Помните, что продвижение в программировании возможно только через практику и непрерывное обучение. Удачи в вашем дальнейшем пути в веб-разработке на PHP!

Юрий Савченко

Привет, моё имя Юрий, и мне 39 лет. Родом из Грозного. Сейчас живу и работаю в Краснодаре, в одном из крупнейших маркетинговых агентств города. Я являюсь основным автором статей на проекте Code4web.

В основном пишу в такие категории как Javascript, HTML и Офтопик.

В свободное время я — лютый геймер. Обожаю игры серии Dark Souls и RPG. Это такой мой способ расслабиться и отдохнуть от повседневной рутины.

Code4Web