简单实现PHP留言板功能

yizhihongxing

下面是“简单实现PHP留言板功能”的完整攻略:

1. 准备工作

首先,要准备好开发环境。需要安装一个支持PHP的Web服务器,比如XAMPP,并启动Apache和MySQL服务。同时,还需要一个文本编辑器,用来编写PHP代码。

2. 创建数据库

先在MySQL中创建一个数据库,比如叫做guestbook。然后,创建一张表,用来存储留言信息。表的结构可以如下:

CREATE TABLE `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
  `content` text COLLATE utf8mb4_unicode_ci NOT NULL,
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

3. 编写PHP代码

3.1. 显示留言列表

<?php

// 连接数据库
$mysqli = new mysqli('localhost', 'root', '', 'guestbook');

// 查询留言列表
$result = $mysqli->query('SELECT * FROM messages ORDER BY created_at DESC');

// 显示留言列表
while ($row = $result->fetch_assoc()) {
    echo '<div>';
    echo '<p>用户名:' . htmlspecialchars($row['username']) . '</p>';
    echo '<p>内容:' . nl2br(htmlspecialchars($row['content'])) . '</p>';
    echo '<p>时间:' . $row['created_at'] . '</p>';
    echo '</div>';
}

$result->free();
$mysqli->close();

?>

3.2. 发表留言

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 获取表单数据
    $username = $_POST['username'];
    $content = $_POST['content'];

    // 校验表单数据
    $errors = [];
    if (empty($username)) {
        $errors[] = '用户名不能为空';
    }
    if (empty($content)) {
        $errors[] = '留言内容不能为空';
    }

    // 如果表单数据校验通过,则插入留言数据到数据库中
    if (empty($errors)) {
        $mysqli = new mysqli('localhost', 'root', '', 'guestbook');
        $stmt = $mysqli->prepare('INSERT INTO messages (username, content, created_at) VALUES (?, ?, NOW())');
        $stmt->bind_param('ss', $username, $content);
        $stmt->execute();
        $stmt->close();
        $mysqli->close();

        // 重定向到留言列表页
        header('Location: index.php');
        exit;
    }
}

?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>发表留言</title>
</head>
<body>
    <h1>发表留言</h1>
    <?php if (!empty($errors)): ?>
        <ul>
        <?php foreach ($errors as $error): ?>
            <li><?= $error ?></li>
        <?php endforeach ?>
        </ul>
    <?php endif ?>
    <form method="post">
        <p>
            <label for="username">用户名:</label>
            <input type="text" name="username" id="username" value="<?= htmlspecialchars($_POST['username'] ?? '') ?>">
        </p>
        <p>
            <label for="content">留言内容:</label>
            <textarea name="content" id="content"><?= htmlspecialchars($_POST['content'] ?? '') ?></textarea>
        </p>
        <p>
            <button type="submit">发表留言</button>
        </p>
    </form>
</body>
</html>

4. 测试应用

将以上代码保存为index.phppost.php文件,并放置在Web服务器的根目录下。然后,打开浏览器访问http://localhost即可看到留言列表页,访问http://localhost/post.php即可发表留言。

示例1:如果留言板页面中有中文字符且在数据库中正确存储和展示,则表明该应用支持UTF-8编码。

示例2:如果用户在发表留言时输入一条空记录,则应该返回错误提示,并拒绝写入数据库。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单实现PHP留言板功能 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • PHP 在线翻译函数代码

    下面我来为您详细讲解。 PHP在线翻译函数代码 前言 在开发网站或应用时,有时我们需要使用翻译功能,通过调用API来实现。然而,由于API的权限、稳定性等原因,我们可能需要自己编写翻译功能的代码。本篇文章将介绍如何编写一份PHP在线翻译函数代码。通过该代码,我们可以实现如Google Translate等在线翻译功能。 函数代码 下面是PHP在线翻译函数的完…

    PHP 2023年5月24日
    00
  • php判断数组中是否存在指定键(key)的方法

    在PHP中,我们可以使用array_key_exists()函数判断一个数组中是否存在指定的键(key)。 该函数的语法如下: bool array_key_exists ( mixed $key , array $array ) 其中,$key 表示要查找的键,$array 表示要查找的数组。 该函数返回一个布尔值,表示查找结果,存在返回true,不存在返…

    PHP 2023年5月26日
    00
  • php 字符转义 注意事项

    当使用 PHP 处理字符串时,可能需要对其中的特殊字符进行转义。这些特殊字符包括单引号、双引号、反斜杠等。在字符串中使用这些字符时,我们需要使用转义字符来告诉 PHP 框架这是字符而不是语法。以下是在 PHP 中进行字符转义的注意事项和示例说明的完整攻略。 PHP 字符转义的方法 在 PHP 中,我们可以使用反斜杠 () 来转义字符。下面是一些常见的特殊字符…

    PHP 2023年5月26日
    00
  • 跨浏览器PHP下载文件名中的中文乱码问题解决方法

    跨浏览器PHP下载文件名中的中文乱码问题一直是一个头疼的问题,本文将介绍一种常见的解决方法。 问题描述 当我们用PHP代码下载文件时,如果文件名包含中文字符,就有可能在不同的浏览器中出现乱码。例如,在火狐浏览器中,文件名可能显示为乱码;而在谷歌浏览器中,文件名可能显示为可读的中文字符。 解决方案 解决这个问题的方法是在HTTP响应头中设置Content-Di…

    PHP 2023年5月26日
    00
  • 简单分析MySQL中的primary key功能

    下面是详细讲解 “简单分析MySQL中的primary key功能”的攻略: 什么是Primary Key Primary Key(主键)是在MySQL表中标识唯一一条记录的列或列组合。通过设置Primary Key,可以确保在表中没有重复的记录,并且可以在查询数据库时快速的定位指定的记录。 如何设置Primary Key 设置Primary Key可以在创…

    PHP 2023年5月27日
    00
  • PHP 数组基本操作小结(推荐)

    PHP 数组基本操作小结(推荐) 数组(array)是一种非常重要的数据类型,经常被用于存储和管理一组相关数据。PHP的数组操作相对来说比较简单,但有很多细节需要注意。下面就让我们来详细讲解一下PHP数组的基本操作。 一、定义数组 在PHP中,定义一个数组很简单,只需要使用array()方法即可。一般来说,数组元素的下标都是整型或字符串,值可以是任意类型的数…

    PHP 2023年5月26日
    00
  • php截取html字符串及自动补全html标签的方法

    PHP截取HTML字符串方法 在PHP中,我们可以使用DOMDocument类来解析HTML文档,并且可以使用XPath查询语言来定位HTML元素。 下面是一个示例,演示如何使用DOMDocument类来截取HTML字符串: // 要截取的HTML字符串 $html = ‘<div class="content"> <h…

    PHP 2023年5月26日
    00
  • PHP实现抓取HTTPS内容

    要实现抓取HTTPS网页内容,可以采用以下步骤: 首先,需要禁用SSL验证。因为HTTPS通信是基于SSL协议的,如果不禁用验证,会导致无法连接到目标站点或连接被中断。可以通过以下代码忽略SSL验证: $options = array( ‘ssl’ => array( ‘verify_peer’ => false, ‘verify_peer_na…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部