1. 程式人生 > >初學PHP實現簡單的留言板 -> php+MySQL+Apache

初學PHP實現簡單的留言板 -> php+MySQL+Apache

效果圖:

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>
                    &nbsp;&nbsp;留言人<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