PHP和MySQL结合使用可以创建一个简单的留言板。下面是一个基础的实现示例,包括留言的添加、显示和删除功能。
PHP:一种广泛使用的开源脚本语言,尤其适用于Web开发,并可以嵌入HTML中。
MySQL:一个关系型数据库管理系统,MySQL采用了双授权政策,可以将数据保存在不同的表中,从而增加数据库的速度和灵活性,具有体积小、速度快、总体拥有成本低的特点。
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "message_board";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
<?php
include 'db.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$message = $_POST['message'];
$sql = "INSERT INTO messages (name, message) VALUES ('$name', '$message')";
if ($conn->query($sql) === TRUE) {
header("Location: index.php");
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>添加留言</title>
</head>
<body>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="message">留言:</label><br>
<textarea id="message" name="message" rows="4" cols="50" required></textarea><br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
include 'db.php';
$sql = "SELECT id, name, message FROM messages";
$result = $conn->query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<title>留言板</title>
</head>
<body>
<h2>留言列表</h2>
<?php
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<div>";
echo "<strong>" . $row["name"] . "</strong>: " . $row["message"];
echo "<a href='delete_message.php?id=" . $row["id"] . "'>删除</a>";
echo "</div><br>";
}
} else {
echo "还没有留言";
}
?>
<a href="add_message.php">添加留言</a>
</body>
</html>
<?php
include 'db.php';
$id = $_GET['id'];
$sql = "DELETE FROM messages WHERE id = $id";
if ($conn->query($sql) === TRUE) {
header("Location: index.php");
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
问题1:数据库连接失败
db.php
中的配置信息是否正确。问题2:SQL注入风险
$stmt = $conn->prepare("INSERT INTO messages (name, message) VALUES (?, ?)");
$stmt->bind_param("ss", $name, $message);
$name = $_POST['name'];
$message = $_POST['message'];
$stmt->execute();
问题3:留言显示乱码
$conn->set_charset("utf8");
通过以上步骤,你可以创建一个基本的PHP和MySQL留言板,并解决一些常见问题。记得在生产环境中加强安全措施,如使用HTTPS、验证用户输入等。
领取专属 10元无门槛券
手把手带您无忧上云