經過了兩天琢磨讀取功能,目前已經有一個稍微完善的讀取系統。
那麼,現在就要來製作「寫入」的部份。
實際上在 PHP5 之後可以使用方便的函式寫入,不過為了顧及到 PHP4 所以還是改良一下語法。
首先,我們先任意建立一個網頁( html 或者 php 皆可 )
並且製作一個表單,作為留言使用:
<form method="post" action="post.php"> 主旨:<input type="text" size="20" name="subject" /><br /> 暱稱:<input type="text" size="20" name="nickname" /><br /> 留言:<textarea name="contents"></textarea> <input type="submit" name="submit" value="送出" /> </form>
因為表單指向 post.php 因此,新增 post.php 接收留言資訊:
<?php
function createComment(array $data){ //建立產生檔案函式
$eol = PHP_EOL; //指定換行字元 \n 或 \r\n
foreach($data as $key => $value){ //讀取傳入的資料
/*
寫入格式:
;(陣列鍵值) Ex. ;subject
(資料)
*/
if($i > 0) //檢查是否為第1筆
$contents .= "{$eol};{$key}{$eol}{$value}"; //如果為非,則在每筆資料前加入換行
else
$contents .= ";{$key}{$eol}{$value}"; //如果為真,則照一般方式儲存
++$i; //增加1 做為判斷資料筆數
}
$dataPath = './data/'.time().'.txt'; //指定儲存路徑
if(PHP_VERSION > 5){ //檢查 PHP 版本
file_put_contents($dataPath, $contents); //使用PHP5新增函式
}else{
$fp = fopen($dataPath, 'w'); //開啟檔案
fwrite($fp, $contents); //寫入資料
fclose($fp); //關閉檔案
}
}
$subject = $_POST['subject'] ? $_POST['subject'] : '無主題'; //檢查主題,無則自動設定
$nickname = $_POST['nickname'] ? $_POST['nickname'] : '匿名'; //檢查暱稱,無則自動設定
$contents = $_POST['contents'] ? $_POST['contents'] : false; //檢查內容,無則傳回假
if(!$contents){ //檢查是否有內容
echo "填寫不完整";
header("Location: post.htm"); //導回發表頁
}else{
createComment(array('subject' => $subject, 'nickname' => $nickname, 'contents' => $contents)); //產生資料檔案( 目前需依照順序才能正常讀取資料 )
header("Location: comments.php"); //引導至觀看留言頁
}
?>
到此,留言板的基本功能已經完成。
明天會加入簡易的刪除留言功能,希望到此各位都能理解。








