php

[PHP]網購網站-簡易留言板製作

Posted by John on 2016-01-02
Words 918 and Reading Time 4 Minutes
Viewed Times

用PHP製作出簡易網路留言板

功能:

  1. 顯示該會員的個人留言紀錄
  2. 紀錄又分成買家跟賣家
  3. 可以做出買家公告(對所有會員)

做完大概長這個樣子:

擷取.PNG

原理: 透過PHP連結到MySQL對資料庫做存取的動作,買家和賣家的背景圖案則是用PowerPoint做出很陽春的圖示樣板。

  1. 先在MySQL建一個board的資料表

    CREATE TABLE IF NOT EXISTS `board` (
    `id` int(100) NOT NULL,
    `username` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
    `IsUserMsg` tinyint(1) DEFAULT NULL,
    `subject` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
    `content` text COLLATE utf8_unicode_ci,
    `time` datetime DEFAULT NULL
    ) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

    對應欄位資料

    id ->留言編號
    username ->會員帳號
    IsUserMsg ->用來判斷會員或官方
    subject ->主題
    content ->內容
    time ->留言時間
  2. 輸出留言訊息

    $results = mysql_query("SELECT * FROM `board` WHERE `username` = '".$_SESSION["username"]. "' OR `username` ='admin' ORDER BY `time` DESC"); 
    <?php
    while($row_RecBoard=mysql_fetch_assoc($results)){
    if($row_RecBoard['IsUserMsg']){ ?>
    <div id = "member_msg">
    <p style="color:black;font-family:'微軟正黑體';text-align:left;font-size:24px;"><?php echo $row_RecBoard['subject']; ?></p>
    <?php echo $row_RecBoard['content'];?> <p style="text-align:right"><?php echo $row_RecBoard['time']."";?></p>
    </div>
    <?php } else{ ?>
    <div id = "admin_msg">
    <p style="color:black;font-family:'微軟正黑體';text-align:left;font-size:24px;"><?php echo $row_RecBoard['subject']; ?></p>
    <?php echo $row_RecBoard['content'];?> <p style="text-align:right"><?php echo $row_RecBoard['time']."";?></p>
    </div>
    <hr />
    <?php } //while ?>

mysql語法中username = $_SESSION[“username”] ,是因為在已經登入的情形下才能存取我的留言版,所以我直接用session去比對username即可。 按照時間排序去讀取資料表的內容後,只將自己帳號的和admin(公告)的內容取出來,然後透過IsUserMsg去判斷是買家的留言或是賣家的留言,並搭配不同的背景圖片就可以完成瞜!

  1. 新增留言訊息
if(isset($_POST["action"])&&($_POST["action"]=="add")){
$sql_query = "INSERT INTO `board` (`id` ,`username` ,`IsUserMsg` ,`subject` ,`content` ,`time`) VALUES (";
$sql_query .= "NULL,";
$sql_query .= "'" .$_SESSION["username"]. "', 1 ,";
$sql_query .= "'" .$_POST["subject"]. "',";
$sql_query .= "'" .$_POST["boardcontent"]. "' ,NOW() );";
if(!mysql_query($sql_query))die("留言失敗!");
//重新導向回到主畫面
header("Location: board.php");
}

然後新增一個表格

<form action = "" method = "POST" name = "add" id = "add">
<table border="5" width="70%" cellspacing="1" align="center">
<tr>
<td bgcolor="#B8B8FF"><label for="subject">主題</label></td>
<td bgcolor="#F5F5F5"><input type="text" name="subject" id="subject" size="49"></td>
</tr>
<tr>
<td bgcolor="#B8B8FF"><label for="boardcontent">內容</label></td>
<td bgcolor="#F5F5F5"><textarea name="boardcontent" id="boardcontent" cols="50" rows="10"></textarea></td>
</tr>
<tr>
<td bgcolor="#F5F5F5" colspan = "2" align = "center">
<input type = "hidden" name = "action" value = "add" >
<input type="submit" value="留言" align="center">
<input type="reset" value="重新設定" align="center">
</td>
</tr>
</table>
</form>

在PHP中要如何與HTML的傳送的表單資料去做連結呢?方法就是透過

<input type = "hidden" name = "action" value = "add" >

設置一個hidden(隱藏)屬性的欄位,當我按下submit按鈕後,如我form的action沒有填上網址就會回傳自己這個網址,此時這個欄位的資料也會一併被送出,所以就可以靠檢查這個欄位來與php做連結搂!
一樣的,因為我是在已經登入完成的情形下去做新增,所以
$sql_query .= "'" .$_SESSION["username"]. "', 1 ,";

已經有了username的資料了,不用另外做輸入,時間的部分透過NOW()直接取得目前時間。

留言板的部分就到這裡就大功告成了,你問我圖案怎麼做?開啟PPT然後圖案拉一拉、顏色換一換摟~


>