Введение
В этой статье мы рассмотрим практический пример создания простого веб-приложения с использованием 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!