初學PHP實現簡單的留言板 -> php+MySQL+Apache
阿新 • • 發佈:2018-11-08
效果圖:
1.在文字框輸入內容後,點擊發表留言,效果如下如所示.
2.資料庫中則將資料記錄了下來.
實現程式碼:
gbook.php -> 資料視覺化介面
<?php /** * 處理字符集編碼 */ header("Content-Type: text/html;charset=utf-8"); /** * 資料庫連線引數 */ $host = '127.0.0.1'; $user = 'root'; $pwd = 'root'; $dbname = 'php10'; $db = new mysqli($host, $user, $pwd, $dbname); /** * 檢查連線是否成功 */ if ($db->connect_errno <> 0) { echo '連線失敗'; echo $db->connect_error; exit; } /** * 設定資料庫字符集編碼 */ $db->query("SET NAMES UTF8"); /** * 資料庫查詢 */ $sql = "select * from msg order by id desc"; $mysqli_result = $db->query($sql); // 如果返回的不是物件,是false則提示錯誤資訊. if ($mysqli_result === false) { echo "SQL錯誤"; exit; } /** * 首次呼叫顯示最新的一條記錄 * 重複呼叫,依次顯示後面的記錄 * 如果沒有記錄可以顯示,就返回null */ /** * row = array(01,2) == true * row = null == false */ $rows = []; while ($row = $mysqli_result->fetch_array(MYSQL_ASSOC)) { $rows[] = $row; } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>留言本</title> <style> .wrap { width:600px; margin:0px auto; } .add{ overflow:hidden; } .add .content { width:598px; margin:0; padding:0; } .add .user { float:left; } .add .btn { float:right; } .msg { margin:20px 0px; background: #ccc; padding:5px; } .msg .info { overflow:hidden; } .msg user { float:left; color:blue; } .msg .time { float:right; color:#999; } .msg .content { width: 100%; } </style> </head> <body> <div class="wrap"> <!-- 發表留言 --> <div class="add"> <form action="save.php" method="post"> <textarea name="content" class="content" cols="50" rows="5"></textarea> <p> 留言人<input type="text" name="user" class="user" /> <input type="submit" class="btn" value="發表留言" /> </p> </form> </div> <?php foreach ($rows as $row) { ?> <!-- 檢視留言 --> <div class="msg"> <div class="info"> <span class="user"><?php echo $row['user']; ?></span> <!-- <span class="time"><?php echo date('Y-m-d H:i:s', $row['intime']); ?></span> --> </div> <div class="content"> <?php echo $row['content']; ?> </div> </div> <?php } ?> </div> </body> </html>
input.php -> 輸入檢查類
<?php class input { // 定義函式,對資料進行檢查 function post ($content) { if ($content == '') { return false; } // 禁止使用的使用者名稱 $n = ['張三', '李四', '王五']; foreach ($n as $name) { if($content == $name) { return false; } } return true; } } ?>
connect.php -> 資料庫連線類
<?php /** * 連線資料庫的引數 */ $host = '127.0.0.1'; $dbuser = 'root'; $pwd = 'root'; $dbname = 'php10'; /** * 連線到資料庫 * 例項化mysqli,將前面的四個引數新增到例項化物件中 */ $db = new mysqli($host, $dbuser, $pwd, $dbname); // 如果連線失敗則執行 if ($db -> connect_error <> 0) { die('連線資料庫失敗'); } /** * 設定資料庫資料傳輸的編碼 */ $db -> query("SET NAMES UTF8"); ?>
save.php
<?php
include('input.php');
include('connect.php');
// 處理字符集編碼
header("Content-Type: text/html;charset=utf-8");
$content = $_POST['content'];
$user = $_POST['user'];
$input = new input();
// 呼叫函式,檢查留言內容
$is = $input -> post($content);
if ($is == false) {
die('留言板內容的資料不能為空');
}
// 呼叫函式,檢查留言人
$is = $input -> post($user);
if($is == false) {
die('留言人的資料不正確');
}
$time = time();
$sql = "insert into msg (content, user, intime) values ('{$content}','{$user}','{$time}')";
$is = $db -> query($sql);
// var_dump($is);
// 跳轉網頁
header("location: gbook.php");
?>
GitHub下載地址: https://github.com/godlikecheng/Messages