首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 與 MySQL 打造簡易留言板完整範例

     編輯:PHP 綜合知識

專案架構

本範例包含兩個檔案:guestbook.php(顯示留言與表單)與 ly.php(處理新增留言)。資料表結構需包含 name、mail、url、ip、time、title、ly 等欄位。

guestbook.php - 留言顯示與輸入表單

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>簡易留言板</title>
    <style>
        body { font-family: sans-serif; color: #002878; font-size: 9pt; }
        a { color: #002878; text-decoration: none; }
        a:hover { color: #cc1111; }
        table { font-size: 9pt; color: #002878; }
        input, textarea { font-size: 9pt; width: 186px; background: #f8f8f8; border: 1px solid #9a9999; }
    </style>
</head>
<body>
<div align="center">
    <h2>留言板</h2>
    <form method="POST" action="ly.php">
        <table>
            <tr><td align="right">姓名:</td><td><input type="text" name="T1" size="13"></td></tr>
            <tr><td align="right">EMAIL:</td><td><input type="text" name="T2" size="13"></td></tr>
            <tr><td align="right">個人主頁:</td><td><input type="text" name="T3" size="13" value="https://"></td></tr>
            <tr><td align="right">主題:</td><td><input type="text" name="T4" size="13"></td></tr>
            <tr><td align="right" valign="top">留言:</td><td><textarea name="S1" rows="10" cols="45"></textarea></td></tr>
            <tr><td colspan="2" align="center"><input type="submit" value="提交"> <input type="reset" value="重寫"></td></tr>
        </table>
    </form>
    <hr>
    <?php
    include "connect.rec"; // 資料庫連線設定
    $perPage = 5;
    $offset  = isset($_GET['offset']) ? (int)$_GET['offset'] : 0;

    // 取得總筆數
    $cntRow = mysql_fetch_array(mysql_query("SELECT COUNT(*) AS rcnt FROM guestbook"));
    $total  = $cntRow['rcnt'];

    // 查詢分頁資料
    $result = mysql_query("SELECT * FROM guestbook LIMIT $offset, $perPage");
    while ($row = mysql_fetch_array($result)) {
        echo "姓名: <font color='#000000'>{$row['name']}</font><br>";
        echo "EMAIL: <font color='#3366FF'>{$row['mail']}</font><br>";
        echo "個人主頁: <font color='#3366FF'>{$row['url']}</font><br>";
        echo "來自: <font color='#3366FF'>{$row['ip']}</font><br>";
        echo "留言時間: <font color='#3366FF'>{$row['time']}</font><br>";
        echo "主題: <font color='#3366FF'>{$row['title']}</font><br>";
        echo "內容: <font color='#000000'>{$row['ly']}</font><br>";
        echo "<hr size='1' color='#6666FF'>";
    }

    // 分頁連結
    if ($offset > 0) {
        $pre = $offset - $perPage;
        echo "<a href='?offset=$pre'>前一頁</a> ";
    }
    $pages = ceil($total / $perPage);
    for ($i = 1; $i <= $pages; $i++) {
        $newoffset = ($i - 1) * $perPage;
        echo "<a href='?offset=$newoffset'>$i</a> ";
    }
    if ($offset + $perPage < $total) {
        $next = $offset + $perPage;
        echo "<a href='?offset=$next'>下一頁</a> ";
    }
    echo "<a href='javascript:history.back()'>返回</a>";
    ?>
</div>
</body>
</html>

ly.php - 新增留言處理

<?php
include "connect.rec";
$name  = $_POST['T1'];
$mail  = $_POST['T2'];
$url   = $_POST['T3'];
$title = $_POST['T4'];
$time  = date("Y-m-d H:i:s");
$ip    = $_SERVER['REMOTE_ADDR'];
$ly    = $_POST['S1'];

$sql = "INSERT INTO guestbook (name, mail, url, ip, time, title, ly)
        VALUES ('$name', '$mail', '$url', '$ip', '$time', '$title', '$ly')";
$result = mysql_query($sql);
if ($result) {
    echo "留言成功!";
    echo "<script>location='guestbook.php';</script>";
} else {
    echo "留言失敗!";
    echo "<a href='javascript:history.back()'>返回</a>";
}
?>

安全性提醒

  • 範例使用已棄用的 mysql_* 函式,實際專案請改用 mysqli 或 PDO 並採用預備語句防止 SQL 注入。
  • 輸出留言內容前應以 htmlspecialchars() 轉義,避免 XSS 攻擊。
  • 建議加入 CSRF Token 驗證與輸入長度限制。

結語

此範例展示最基礎的 PHP + MySQL 留言板流程,適合初學者理解表單處理、分頁查詢與資料庫操作的基本概念。實務開發時請務必強化安全性與錯誤處理。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved