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

PHP 檔案操作實作簡易留言板(純文字檔儲存)

     編輯:PHP 相關知識

PHP 檔案操作實作簡易留言板(純文字檔儲存)

不使用資料庫,直接以檔案系統儲存留言:每筆留言一個文字檔,檔名含時間戳記。包含顯示列表、發表表單、寫入處理三個頁面。

Index.php - 顯示留言列表

<?php
$path = 'DB/';
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
    if ($file === '.' || $file === '..') continue;
    $fp = fopen($path . $file, 'r');
    $title   = fgets($fp);
    $author  = fgets($fp);
    $content = fread($fp, filesize($path . $file));
    fclose($fp);

    echo "<b>標題:</b>" . htmlspecialchars($title) . "<br>";
    echo "<b>作者:</b>" . htmlspecialchars($author) . "<br>";
    echo "<b>內容:</b><pre>" . htmlspecialchars($content) . "</pre>";
    echo "<hr>";
}
closedir($dh);
?>

Post.php - 處理發表

<?php
$path = 'DB/';
$filename = 'S' . date('YmdHis') . '.dat';
$fp = fopen($path . $filename, 'w');
fwrite($fp, $_POST['title']   . "\n");
fwrite($fp, $_POST['author']  . "\n");
fwrite($fp, $_POST['content'] . "\n");
fclose($fp);
echo '留言發表成功! <a href="Index.php">返回首頁</a>';
?>

PostForm.html - 發表表單

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>發表留言</title></head><body>
<h1 style="text-align:center">發表新的留言</h1>
<form method="post" action="Post.php">
<table align="center">
<tr><td>標題</td><td><input name="title" type="text" size="50"></td></tr>
<tr><td>作者</td><td><input name="author" type="text" size="20"></td></tr>
<tr><td>內容</td><td><textarea name="content" cols="50" rows="10"></textarea></td></tr>
</table>
<p align="center"><input type="submit" value="送出"> <input type="reset" value="重填"></p>
</form>
</body></html>

安全性與改進建議

  • XSS 防護:輸出時必須 htmlspecialchars(),範例已加入。
  • 檔案命名:使用時間戳 + 隨機數避免衝突(如 S{YmdHis}{rand(1000,9999)}.dat)。
  • 目錄權限:DB/ 需可寫入,建議設為 0755,擁有者為 PHP 執行身分。
  • 並發處理:高流量下檔案鎖定 flock() 或改用 SQLite/資料庫。
  • 資料結構:可改為 JSON 或 CSV 格式,方便擴充欄位(如 IP、User-Agent、回覆)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved