引言

在互聯(lián)網(wǎng)時(shí)代,留言系統(tǒng)是網(wǎng)站與用戶互動(dòng)的重要方式。本文將介紹如何使用PHP輕松實(shí)現(xiàn)一個(gè)登錄留言系統(tǒng),通過簡(jiǎn)單的步驟和代碼示例,幫助您快速搭建一個(gè)功能完善、易于管理的留言平臺(tái)。

系統(tǒng)需求

  • Web服務(wù)器:如Apache、Nginx等
  • PHP環(huán)境:PHP 5.6及以上版本
  • 數(shù)據(jù)庫(kù):如MySQL等

系統(tǒng)設(shè)計(jì)

1. 數(shù)據(jù)庫(kù)設(shè)計(jì)

首先,我們需要設(shè)計(jì)一個(gè)數(shù)據(jù)庫(kù)來存儲(chǔ)用戶信息和留言內(nèi)容。以下是一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)設(shè)計(jì)示例:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `content` text NOT NULL,
  `create_time` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `messages_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

2. 登錄模塊

登錄模塊主要包括用戶注冊(cè)、登錄和退出功能。

注冊(cè)

// 用戶注冊(cè)代碼示例
if (isset($_POST['register'])) {
    $username = $_POST['username'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

    // 連接數(shù)據(jù)庫(kù)
    $conn = new mysqli('localhost', 'root', 'password', 'database_name');

    // 檢查用戶名是否存在
    $stmt = $conn->prepare("SELECT id FROM users WHERE username = ?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        // 用戶名已存在
        echo "用戶名已存在,請(qǐng)重新輸入!";
    } else {
        // 插入用戶信息
        $stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
        $stmt->bind_param("ss", $username, $password);
        $stmt->execute();
        echo "注冊(cè)成功!";
    }

    // 關(guān)閉數(shù)據(jù)庫(kù)連接
    $stmt->close();
    $conn->close();
}

登錄

// 用戶登錄代碼示例
if (isset($_POST['login'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

    // 連接數(shù)據(jù)庫(kù)
    $conn = new mysqli('localhost', 'root', 'password', 'database_name');

    // 查詢用戶信息
    $stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
    $stmt->bind_param("s", $username);
    $stmt->execute();
    $result = $stmt->get_result();

    if ($result->num_rows > 0) {
        $user = $result->fetch_assoc();
        // 驗(yàn)證密碼
        if (password_verify($password, $user['password'])) {
            // 登錄成功,設(shè)置會(huì)話
            $_SESSION['user_id'] = $user['id'];
            echo "登錄成功!";
        } else {
            echo "密碼錯(cuò)誤!";
        }
    } else {
        echo "用戶不存在!";
    }

    // 關(guān)閉數(shù)據(jù)庫(kù)連接
    $stmt->close();
    $conn->close();
}

退出

// 用戶退出代碼示例
session_destroy();
echo "退出成功!";

3. 留言模塊

留言模塊主要包括留言發(fā)布和留言展示功能。

發(fā)布留言

// 發(fā)布留言代碼示例
if (isset($_POST['message'])) {
    $user_id = $_SESSION['user_id'];
    $content = $_POST['content'];

    // 連接數(shù)據(jù)庫(kù)
    $conn = new mysqli('localhost', 'root', 'password', 'database_name');

    // 插入留言信息
    $stmt = $conn->prepare("INSERT INTO messages (user_id, content, create_time) VALUES (?, ?, NOW())");
    $stmt->bind_param("is", $user_id, $content);
    $stmt->execute();
    echo "留言成功!";

    // 關(guān)閉數(shù)據(jù)庫(kù)連接
    $stmt->close();
    $conn->close();
}

展示留言

”`php // 展示留言代碼示例 $conn = new mysqli(‘localhost’, ‘root’, ‘