用php+mysql写一个留言板,要求数据库里有留言人编号,留言标题,留言内容,留言人,留言人email,留言人ip,留言时间,留言人性别。还要有更新和删除功能
时间: 2023-06-23 07:10:12 浏览: 51
好的,以下是一个简单的留言板的示例代码。需要注意的是,本示例代码没有进行严格的安全性和数据验证,仅供参考。
1. 创建数据库表
首先需要在 MySQL 数据库中创建一个名为 `messages` 的表,包含以下字段:
```
id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
name VARCHAR(50) NOT NULL,
email VARCHAR(255) NOT NULL,
ip VARCHAR(50) NOT NULL,
gender ENUM('male', 'female') NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
```
2. 编写 PHP 代码
以下是一个简单的留言板的 PHP 代码,包括添加留言、显示留言、更新留言和删除留言的功能:
```
<?php
// 连接 MySQL 数据库
$mysql_host = 'localhost';
$mysql_user = 'username';
$mysql_pass = 'password';
$mysql_db = 'database';
$conn = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
if (!$conn) {
die('连接数据库失败: ' . mysqli_connect_error());
}
// 添加留言
if (isset($_POST['submit'])) {
$title = $_POST['title'];
$content = $_POST['content'];
$name = $_POST['name'];
$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$gender = $_POST['gender'];
$sql = "INSERT INTO messages (title, content, name, email, ip, gender) VALUES ('$title', '$content', '$name', '$email', '$ip', '$gender')";
if (mysqli_query($conn, $sql)) {
echo '留言添加成功';
} else {
echo '留言添加失败: ' . mysqli_error($conn);
}
}
// 删除留言
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
$sql = "DELETE FROM messages WHERE id=$id";
if (mysqli_query($conn, $sql)) {
echo '留言删除成功';
} else {
echo '留言删除失败: ' . mysqli_error($conn);
}
}
// 更新留言
if (isset($_POST['update'])) {
$id = $_POST['id'];
$title = $_POST['title'];
$content = $_POST['content'];
$name = $_POST['name'];
$email = $_POST['email'];
$gender = $_POST['gender'];
$sql = "UPDATE messages SET title='$title', content='$content', name='$name', email='$email', gender='$gender' WHERE id=$id";
if (mysqli_query($conn, $sql)) {
echo '留言更新成功';
} else {
echo '留言更新失败: ' . mysqli_error($conn);
}
}
// 显示留言
$sql = "SELECT * FROM messages ORDER BY created_at DESC";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
$id = $row['id'];
$title = $row['title'];
$content = $row['content'];
$name = $row['name'];
$email = $row['email'];
$ip = $row['ip'];
$gender = $row['gender'];
$created_at = $row['created_at'];
echo '<div>';
echo '<h3>' . $title . '</h3>';
echo '<p>' . $content . '</p>';
echo '<p>' . $name . ' (' . $email . ') - ' . $gender . ' - ' . $ip . ' - ' . $created_at . '</p>';
echo '<a href="edit.php?id=' . $id . '">编辑</a> | <a href="?delete=' . $id . '">删除</a>';
echo '</div>';
}
mysqli_close($conn);
```
3. 编写 HTML 代码
以下是一个简单的留言板的 HTML 代码,包括添加留言表单和显示留言的区域:
```
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h1>留言板</h1>
<h2>添加留言</h2>
<form method="post">
<label>标题:</label><br>
<input type="text" name="title" required><br>
<label>内容:</label><br>
<textarea name="content" required></textarea><br>
<label>姓名:</label><br>
<input type="text" name="name" required><br>
<label>邮箱:</label><br>
<input type="email" name="email" required><br>
<label>性别:</label><br>
<input type="radio" name="gender" value="male" required>男
<input type="radio" name="gender" value="female">女<br>
<input type="submit" name="submit" value="提交">
</form>
<h2>留言列表</h2>
<?php include 'messages.php'; ?>
</body>
</html>
```
4. 编写编辑留言页面
以下是一个简单的编辑留言页面的 PHP 代码:
```
<?php
// 连接 MySQL 数据库
$mysql_host = 'localhost';
$mysql_user = 'username';
$mysql_pass = 'password';
$mysql_db = 'database';
$conn = mysqli_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
if (!$conn) {
die('连接数据库失败: ' . mysqli_connect_error());
}
// 获取要编辑的留言 ID
$id = $_GET['id'];
$sql = "SELECT * FROM messages WHERE id=$id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
// 显示编辑留言表单
?>
<!DOCTYPE html>
<html>
<head>
<title>编辑留言</title>
</head>
<body>
<h1>编辑留言</h1>
<form method="post" action="index.php">
<input type="hidden" name="id" value="<?php echo $row['id']; ?>">
<label>标题:</label><br>
<input type="text" name="title" value="<?php echo $row['title']; ?>" required><br>
<label>内容:</label><br>
<textarea name="content" required><?php echo $row['content']; ?></textarea><br>
<label>姓名:</label><br>
<input type="text" name="name" value="<?php echo $row['name']; ?>" required><br>
<label>邮箱:</label><br>
<input type="email" name="email" value="<?php echo $row['email']; ?>" required><br>
<label>性别:</label><br>
<input type="radio" name="gender" value="male" <?php if ($row['gender'] == 'male') echo 'checked'; ?> required>男
<input type="radio" name="gender" value="female" <?php if ($row['gender'] == 'female') echo 'checked'; ?>>女<br>
<input type="submit" name="update" value="更新">
</form>
</body>
</html>
<?php mysqli_close($conn); ?>
```
5. 运行留言板
将以上代码保存为 `index.php` 和 `edit.php`,并放置在一个 PHP 可执行的服务器上运行,即可访问留言板并添加、显示、更新和删除留言。