ホームページ > バックエンド開発 > PHPチュートリアル > PHPを使用してデータベースに接続し、掲示板機能を実装する方法

PHPを使用してデータベースに接続し、掲示板機能を実装する方法

一个新手
リリース: 2023-03-16 12:46:01
オリジナル
1832 人が閲覧しました

PHP はメッセージ ボード機能を実装します:

1 最初はログイン ページです:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>留言板登录</title>
        <script src="bootstrap/js/jquery-1.11.2.min.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>
    <style>
        .header{
            margin-left: 550px;
            margin-top: 150px;
            height: 300px;
            max-width: 300px;
        }
        .xiugai{
            max-width: 200px;
        }
        .login{
            margin-top: 10px;
        }
    </style>
    <body>
        <form action="messloginchuli.php" method="post">
        <p class="header">
            <h2>开发部内部留言板</h2>
            <p class="input-group xiugai">
                <span class="input-group-addon" style="margin-top: 20px;">用户名:</span>
                <input type="text" class="form-control" name="uid" placeholder="请输入用户名">
            </p>
            <p class="input-group xiugai" style="margin-top: 10px;">
                <span class="input-group-addon">口令:</span>
                <input type="text" class="form-control" name="pwd" placeholder="请输入口令">
            </p>
            <button type="submit" class="btn btn-success login">登录</button>
        </p>
    </form>
    </body>
</html>
ログイン後にコピー

2 ログイン ページが完了したら、ログイン処理ページに入る必要があります。これは、上記で送信された messageloginchuli.php です

<?phpsession_start();
    // 登录之后要把所包含登录的页面连接起来,开启session$uid = $_POST["uid"];
    $pwd = $_POST["pwd"];
    require_once "./DBDA.class.php";
    $db = new DBDA();
    $sql = "select password from yuangong where username=&#39; {
    $uid
}
&#39;";
    $arr = $db->query($sql,0);
    //var_dump($arr[0][0]);
    if($arr[0][0]=$pwd && !empty($pwd)) {
    $_SESSION["uid"]=$uid;
    header("location:message.php");
}
?>
ログイン後にコピー

ログイン ページの効果は図に示すとおりです。

3. ログイン後、メイン ページに入り、受け取った会話の内容が表示されます。以下は、設計されたデータベース テーブルとメイン ページのコードです。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="bootstrap/js/jquery-1.11.2.min.js"></script>
        <script src="bootstrap/js/bootstrap.min.js"></script>
        <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
    </head>
    <style>
        .mess{
            max-width: 800px;
            margin-left: 250px;
            margin-top: 150px;
        }
    </style>
    <body>
        <?php
        session_start();
        $uid = $_SESSION["uid"];
        if(empty($_SESSION["uid"])){
            header("location:messlogin.php");
            exit;
        }
        ?>
        <p style="margin-left: 880px; margin-top: 50px;font-size: 20px;" >
            <a href="publish_info.php" >发布信息</a>
            <a href="tuichuchuli.php">退出系统</a>
            </p>
        <table class="table table-bordered mess" style="margin-top: -40px;">
            <caption style="font-size: 20px;">
                留言信息:
            </caption>
            
            <thead>
                <tr>
                    <th>发送人</th>
                    <th>发送时间</th>
                    <th>接收人</th>
                    <th>信息内容</th>
                </tr>
            </thead>
            <tbody>
                <?php
                require_once "./DBDA.class.php";
                $db = new DBDA();
                $sql = "select * from liuyan where recever=&#39;{$uid}&#39; or recever=&#39;all&#39;";
                $arr = $db->query($sql,0);
                foreach($arr as $v){
                    echo "<tr>
                    <td>{$v[1]}</td>
                    <td>{$v[2]}</td>
                    <td>{$v[3]}</td>
                    <td>{$v[4]}</td>
                </tr>";
                }
                ?>
                
            </tbody>
        </table>
    </body>
</html>
ログイン後にコピー

ユーザーのログアウトを実装するためにログインシステムを終了し、ログインに戻ります。 ページ関数のコードは次のとおりです:

<?phpsession_start();
    $uid = $_SESSION["uid"];
    unset($uid);
    header("location:messlogin.php");
?>
ログイン後にコピー
ここでコードを記述したら、次はリリース情報の入力です。これは以前に作成した追加ページと同等であり、その処理ページは以前と変わりません。違いは、現在の処理ページはユーザーがログインしているときに操作され、ログインしているすべてのページに接続するためにセッションを使用する必要があることです。メインページの効果は図のようになります:

4. 最後に、情報公開ページがあり、誰にでも情報を送信できます

コードは次のとおりです:

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>发布信息界面</title> <script src="bootstrap/js/jquery-1.11.2.min.js"></script> <script src="bootstrap/js/bootstrap.min.js"></script> <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/> </head> <style> .mess {
    max-width: 200px;
    margin-top: 10px;
}
.mess1 {
    margin-top: 10px;
}
.opt {
    max-width: 200px;
    margin-left: 80px;
}
.txt {
    max-width: 200px;
}
</style> <body><?phpsession_start();
    $uid = $_SESSION["uid"];
    if (empty($_SESSION["uid"])) {
    header("location:messlogin.php");
    exit ;
}
?> <p style="margin-left: 500px;
    margin-top: 150px;
    "> <p style="margin-left: 60px;
    margin-bottom: 20px;
    font-size: 20px;
    " > <a href="message.php" >查看信息</a> <a href="seemess.php" style="margin-left: 80px;
    " >查看发送信息</a> </p> <form class="form-horizontal" role="form" action="infochuli.php" method="post"> <p class="form-group"> <label for="firstname" class="col-sm-2 control-label mess1">接收人:</label> <p class="form-group "> <select class="form-control opt" name="recever"> <option value="all">所有人</option> <?php require_once "./DBDA.class.php";
    $db = new DBDA();
    //这里可以给特定的朋友发送信息的sql语句 //$sql = "select firend.firend,yuangong.name from firend,yuangong where firend.firend //= yuangong.username and firend.me = &#39; {
    $uid
}
&#39;";
    $sname = "select * from yuangong where username not in (&#39; {
    $uid
}
&#39;)";
    $arr = $db->query($sname,0);
    //var_dump($arr[0][2]);
    foreach($arr as $v) {
    echo "<option value=&#39; {
    $v[0]
}
&#39;> {
    $v[2]
}
</option>";
}
?> </select> </p> </p> <p class="form-group"> <label for="lastname" class="col-sm-2 control-label mess1">信息内容:</label> <p class="col-sm-10"> <textarea class="form-control txt" rows="3" name="content"></textarea> </p> </p> <p class="form-group"> <p class="col-sm-offset-2 col-sm-10"> <button type="submit" class="btn btn-default"> 发送 </button> </p> </p> </form> </p> </body></html>
ログイン後にコピー

メッセージ送信ページは次の図に示すとおりです:

5. 情報を公開した後、送信された infochuli.php である処理ページに入り、最後に情報送信インターフェース

<?phpsession_start();
    $uid = $_SESSION["uid"];
    $recever = $_POST["recever"];
    $content = $_POST["content"];
    $arr = $_POST["recever"];
    $t = date("Y-m-d H:i:s");
    require_once "./DBDA.class.php";
    $db = new DBDA();
    $sql = "insert into liuyan values(&#39;&#39;,&#39; {
    $uid
}
&#39;,&#39; {
    $t
}
&#39;,&#39; {
    $recever
}
&#39;,&#39; {
    $content
}
&#39;,0)";
    $arr = $db->query($sql);
    if($arr && !empty($arr)) {
    header("location:publish_info.php");
}
else {
    echo "发送失败!";
}
?>
ログイン後にコピー
に戻る必要があります。

以上がPHPを使用してデータベースに接続し、掲示板機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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