Для создания гостевой книги на PHP можно использовать базу данных MySQL и следующий код:
1. Создайте таблицу в базе данных MySQL:
«`sql
CREATE TABLE guestbook (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
«`
2. Создайте файлы index.php и process.php.
3. В файле index.php создайте форму для отправки сообщения:
«`html
<form action=»process.php» method=»post»>
<label for=»name»>Name:</label>
<input type=»text» name=»name» id=»name» required>
<label for=»email»>Email:</label>
<input type=»email» name=»email» id=»email» required>
<label for=»message»>Message:</label>
<textarea name=»message» id=»message» required></textarea>
<button type=»submit»>Submit</button>
</form>
«`
4. В файле process.php обработайте данные из формы и добавьте их в базу данных:
«`php
<?php
// Подключение к базе данных
$host = ‘localhost’;
$user = ‘username’;
$password = ‘password’;
$dbname = ‘database_name’;
$dsn = «mysql:host=$host;dbname=$dbname;charset=utf8mb4»;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// Обработка данных из формы
$name = $_POST[‘name’];
$email = $_POST[’email’];
$message = $_POST[‘message’];
// Добавление данных в базу данных
$stmt = $pdo->prepare(«INSERT INTO guestbook (name, email, message) VALUES (?, ?, ?)»);
$stmt->execute([$name, $email, $message]);
// Перенаправление на главную страницу
header(‘Location: index.php’);
exit;
«`
5. В файле index.php выведите все сообщения из базы данных:
«`php
<?php
// Подключение к базе данных
$host = ‘localhost’;
$user = ‘username’;
$password = ‘password’;
$dbname = ‘database_name’;
$dsn = «mysql:host=$host;dbname=$dbname;charset=utf8mb4»;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$pdo = new PDO($dsn, $user, $password, $options);
} catch (\PDOException $e) {
throw new \PDOException($e->getMessage(), (int)$e->getCode());
}
// Получение всех сообщений из базы данных
$stmt = $pdo->query(«SELECT * FROM guestbook ORDER BY created_at DESC»);
$messages = $stmt->fetchAll();
?>
<!— Вывод всех сообщений —>
<?php foreach ($messages as $message): ?>
<div>
<h3><?= $message[‘name’] ?></h3>
<p><?= $message[’email’] ?></p>
<p><?= $message[‘message’] ?></p>
<p><?= $message[‘created_at’] ?></p>
</div>
<?php endforeach; ?>
«`
Гостевая книга на PHP готова!
