ホームページ > バックエンド開発 > PHPの問題 > PHPで変更可能なメッセージボードを作成する

PHPで変更可能なメッセージボードを作成する

PHPz
リリース: 2023-05-07 13:47:07
オリジナル
791 人が閲覧しました

インターネットの徐々に普及が進むにつれて、Web サイトは人々が情報を入手し、通信し、娯楽を行うための主要な方法の 1 つになりました。 Web サイト上の共通コミュニケーション ツールの 1 つとして、掲示板は Web サイトに欠かせない部分になっています。この記事では、PHPを使用して変更可能な掲示板を作成する方法を紹介します。

1. 環境設定

掲示板を作成するには、まず環境を設定する必要があります。ここでは、XAMPPを使用してローカルサーバー環境を構築します。

手順は次のとおりです。

  1. XAMPP ソフトウェアをダウンロードしてインストールします。
  2. XAMPP の Apache および MySQL サービスを開始します。
  3. 開くブラウザで「 localhost 」と入力し、ページ上で言語と認証方法を選択した後、XAMPP 管理パネルに入ります;
  4. 管理パネルで、「phpMyAdmin」をクリックしてデータベース管理ページに入ります。

2. データベースとデータ テーブルの作成

データベースを作成し、guestbook という名前を付けます。データベースの下にmessagesという名前のデータテーブルを作成します。データテーブルには次のフィールドが含まれます:

フィールド名タイプ長さの説明
id ​​int 11 メッセージID、主キー、自動インクリメント
username varchar 50 Username
email varchar 100 Email
message text メッセージの内容
post_time datetime メッセージ時刻

3. メッセージ ボード ページの作成

このステップでは、メッセージ ボードを作成しますユーザーがメッセージを入力したり、既存のメッセージを表示したりできるページ。

1. 掲示板ページの UI を作成する

次のコードを HTML に追加します:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>可修改的留言板</title>
</head>
<body>
    <h1>留言板</h1>

    <div>
        <form method="POST" action="post_message.php">
            <h3>发布留言</h3>
            用户名:<input type="text" name="username"><br>
            邮箱:<input type="email" name="email"><br>
            留言:<br>
            <textarea name="message" rows="10" cols="50"></textarea><br>
            <input type="submit" value="发布">
        </form>
    </div>

    <div>
        <h3>最新留言</h3>
        <?php
            // 显示最新留言
        ?>
    </div>
</body>
</html>
ログイン後にコピー

ご覧のとおり、掲示板ページには 2 つの部分が含まれています。 1 つの部分はメッセージ フォームを投稿するためのもので、もう 1 つの部分は既存のメッセージのリストです。

2. メッセージを送信する

掲示板ページのフォームを送信した後、送信されたデータをデータベースに保存する必要があります。

メッセージ送信フォームのデータを処理するために、ルート ディレクトリに post_message.php という名前のファイルを作成します。

次のコードをファイルに追加します:

<?php
// 连接数据库
$link = mysqli_connect("localhost", "root", "", "guestbook");
if (!$link) {
    die("数据库连接失败:" . mysqli_connect_error());
}

// 获取表单数据
$username = $_POST['username'];
$email = $_POST['email'];
$message = $_POST['message'];
$post_time = date("Y-m-d H:i:s");

// 插入留言到数据库中
$sql = "INSERT INTO messages (username, email, message, post_time)
        VALUES ('$username', '$email', '$message', '$post_time')";
$result = mysqli_query($link, $sql);
if ($result) {
    echo "留言发布成功!";
} else {
    echo "留言发布失败:" . mysqli_error($link);
}

// 关闭数据库连接
mysqli_close($link);
?>
ログイン後にコピー

このファイルでは、まずデータベースに接続し、フォーム データを取得します。次に、データがメッセージ データ テーブルに挿入されます。

3. メッセージの表示

掲示板ページでは、最新のメッセージを表示する必要があります。これを行うには、メッセージ ボード ページの 2 番目の部分にデータベースからのメッセージのリストを表示します。

HTML で、次のコードを変更します。

<div>
    <h3>最新留言</h3>
    <?php
        // 查询留言信息
        $link = mysqli_connect("localhost", "root", "", "guestbook");
        if (!$link) {
            die("数据库连接失败:" . mysqli_connect_error());
        }
        $sql = "SELECT * FROM messages";
        $result = mysqli_query($link, $sql);
        mysqli_close($link);

        // 遍历留言数据,并显示到页面上
        while ($row = mysqli_fetch_assoc($result)) {
            ?>
            <hr>
            <div>
                <p>用户名:<?php echo $row['username']; ?></p>
                <p>邮箱:<?php echo $row['email']; ?></p>
                <p>时间:<?php echo $row['post_time']; ?></p>
                <p>留言内容:<?php echo $row['message']; ?></p>
            </div>
        <?php
        }
        ?>
</div>
ログイン後にコピー

このコードでは、まずデータベース内のメッセージ データ テーブルをクエリし、クエリされたメッセージ データを $result に保存します。その後、メッセージ データは while ループを通過してページに表示されます。

4. メッセージの変更

メッセージ ボードでは、ユーザーは送信されたメッセージを変更できます。

HTML コードで、メッセージを表示するようにコードを次のように変更します。

<div>
    <h3>最新留言</h3>
    <?php
        // 查询留言信息
        $link = mysqli_connect("localhost", "root", "", "guestbook");
        if (!$link) {
            die("数据库连接失败:" . mysqli_connect_error());
        }
        $sql = "SELECT * FROM messages";
        $result = mysqli_query($link, $sql);
        mysqli_close($link);

        // 遍历留言数据,并显示到页面上
        while ($row = mysqli_fetch_assoc($result)) {
            ?>
            <hr>
            <div>
                <p>用户名:<?php echo $row['username']; ?></p>
                <p>邮箱:<?php echo $row['email']; ?></p>
                <p>时间:<?php echo $row['post_time']; ?></p>
                <p>留言内容:<?php echo $row['message']; ?></p>
                <a href="edit_message.php?id=<?php echo $row['id']; ?>">修改</a>
            </div>
        <?php
        }
        ?>
</div>
ログイン後にコピー

メッセージを変更するためのハイパーリンクが追加されていることがわかります。

edit_message.php ファイルに、次のコードを追加します。

<?php
// 连接数据库
$link = mysqli_connect("localhost", "root", "", "guestbook");
if (!$link) {
    die("数据库连接失败:" . mysqli_connect_error());
}

// 获取留言ID
$id = $_GET['id'];

// 根据ID查询留言信息
$sql = "SELECT * FROM messages WHERE id=$id LIMIT 1";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_assoc($result);

// 显示留言内容的表单
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>修改留言</title>
</head>
<body>
    <h1>修改留言</h1>

    <div>
        <form method="POST" action="save_message.php">
            <h3>修改留言</h3>
            用户名:<input type="text" name="username" value="<?php echo $row['username']; ?>"><br>
            邮箱:<input type="email" name="email" value="<?php echo $row['email']; ?>"><br>
            留言:<br>
            <textarea name="message" rows="10" cols="50"><?php echo $row['message']; ?></textarea><br>
            <input type="hidden" name="id" value="<?php echo $row['id']; ?>">
            <input type="submit" value="保存">
        </form>
    </div>
</body>
</html>

<?php
// 关闭数据库连接
mysqli_close($link);
?>
ログイン後にコピー

このコードでは、まず ID に基づいてメッセージ情報をクエリし、クエリされたメッセージ データをフォームに表示します。ユーザーはこのページでメッセージを変更できます。このうち、隠しフィールド入力はメッセージ ID を保存するために使用され、後でメッセージを保存するときにその ID に基づいてデータベースを更新できるようにします。

save_message.php ファイルに次のコードを追加します。

<?php
// 连接数据库
$link = mysqli_connect("localhost", "root", "", "guestbook");
if (!$link) {
    die("数据库连接失败:" . mysqli_connect_error());
}

// 获取表单数据
$id = $_POST['id'];
$username = $_POST['username'];
$email = $_POST['email'];
$message = $_POST['message'];

// 更新留言
$sql = "UPDATE messages SET username='$username', email='$email', message='$message' WHERE id=$id";
$result = mysqli_query($link, $sql);
if ($result) {
    echo "留言更新成功!";
} else {
    echo "留言更新失败:" . mysqli_error($link);
}

// 关闭数据库连接
mysqli_close($link);
?>
ログイン後にコピー

このファイルでは、まずデータベースに接続し、フォーム内のメッセージ データとメッセージ ID を取得します。続いて、データベース内のメッセージデータがそのIDに応じて更新される。

5. 概要

この記事の導入部を通じて、読者は PHP を使用して変更可能なメッセージ ボードを作成する方法を学習したと思います。実際の開発では、メッセージへの返信、メッセージ数の表示、時間順の並べ替えなど、より豊富な機能を掲示板に拡張することもできます。

以上がPHPで変更可能なメッセージボードを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート