> 백엔드 개발 > PHP 문제 > PHP로 간단한 게시판을 구현하는 방법

PHP로 간단한 게시판을 구현하는 방법

藏色散人
풀어 주다: 2023-03-14 13:50:01
원래의
5194명이 탐색했습니다.

PHP에서 간단한 메시지 게시판을 구현하는 방법: 1. 데이터베이스에 두 개의 테이블을 만듭니다. 2. 보내기 페이지와 메시지 페이지를 작성합니다. 3. 세션을 통해 사용자 로그인을 구현합니다.

PHP로 간단한 게시판을 구현하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.4, Dell G3 컴퓨터.

PHP에서 간단한 게시판을 구현하는 방법은 무엇입니까?

PHP+MySql은 간단한 메시지 보드를 구현합니다.

//글쎄요, 제가 직접 코드를 작성하지는 않았지만, 좀 더 보기 좋게 작성할 시간이 생겼습니다. 제가 직접 하나~ (미숙해서 하루걸렸네요...

게시판은 WEB 개발 문의의 기본입니다. 메시지판을 작성하려면 프론트엔드의 기본 태그 몇개를 알아야 하고, 이해가 있어야 합니다. 데이터베이스의 기본 SQL 언어, PHP 기본 지식, 기본 프런트 엔드 + 데이터베이스 기본 + PHP 기본 => 메시지 보드

인터페이스가 정말 놀랍습니다...

먼저 데이터베이스를 생성합니다. 데이터베이스, 계정 비밀번호 저장용, 메시지 정보 저장용

//创建数据库,里面有两张表Admin和Message
create database gbook;
//创建Admin表,记录用户名和密码
create table admin(
    username varchar(20) not null,
    userpass varchar(20) not null
);
//创建Message表,记录留言的id,留言人,留言日期,留言内容以及回复
create table message(
    id int(4) not null auto_increment primary key,
    author varchar(20) not null,
    addtime datetime not null,
    content varchar(1000) not null,
    reply varchar(1000) not null
);
로그인 후 복사

먼저 사용자가 메시지를 남기는 부분을 구현합니다. 메시지가 없으면 인덱스 페이지가 비어 있게 됩니다~

<!-- 1.用户填写留言部分 send.php -->
<!-- 可以首先编写send页面,只有用户提交了留言才能进行后面的留言显示,留言管理等等 -->
 
<?php
    $name = $_POST["name"];//从input里面传过来的name
    //看用户是否提交了新留言,如果提交了,则写入表message
    if( $name != ""){
        $content = $_POST["content"];
        //下面的代码用于获得当前日期和时间
        $addtime = date("Y-m-d h:i:s");//得到日期
        $link = mysqli_connect("127.0.0.1","root","Vmorish");//PHP连接数据库
        if( $link)
            echo "ok!<br>";
        else {
            echo "bad!<br>";
        }
        mysqli_select_db($link,"gbook");//选择数据库
        $insert = "insert into message(author,addtime,content,reply) values(&#39;$name&#39;,&#39;$addtime&#39;,&#39;$content&#39;,&#39;&#39;)";
        mysqli_query($link,$insert);
        mysqli_close($link);
        echo "<script language=javascript>alert(&#39;留言成功!单击确定查看留言.&#39;);location.href=&#39;index.php&#39;;</script>";
    }
    mysqli_close($link);
 
 ?>
 
<html>
 
<head>
    <title>欢迎来到陈雨情的留言本吼吼吼</title>
</head>
 
<body>
    <!-- border-collapse:collapse合并表格的边框 -->
    <table border=1 cellspacing=0 cellspadding=0 style="border-collapse:collapse" align=center width=400 bordercolor=black>
        <tr>
            <td height=100 bgcolor=#6c6c6c>
                <font style="font-size:30px" color=#ffffff face="黑体">欢迎来到×××的留言本吼吼吼</font>
            </td>
        </tr>
        <tr>
            <td height=25>
                 <a href=send.php>[我要写留言]</a> 
                 <a href=login.php>[管理留言]</a>
            </td>
        </tr>
        <tr>
            <td height=200>
                <form method="POST" action="send.php">
                    <table border="1" width="95%" id="table1" cellspacing="0" cellpadding="0" bordercolor="#808080" style="border-collapse:collapse" height="265">
                        <tr>
                            <td colspan="2" height="29">
                                <p align="center">欢迎填写你的留言</p>
                            </td>
                        </tr>
                        <tr>
                            <td width="32%">
                                <p align="right">你的名字</p>
                            </td>
                            <td width="67%">
                                <input type="text" name="name" size="20">
                            </td>
                        </tr>
                        <tr>
                            <td width="32%">
                                <p>留言内容</p>
                            </td>
                            <td width="67%">
                                <textarea rows="10" name="content" cols="31"></textarea>
                            </td>
                        </tr>
                        <tr>
                            <td width="99%" colspan="2">
                                <p align="center">
                                    <input type="submit" value="提交" name="B1">
                                </p>
                            </td>
                        </tr>
                    </table>
                </form>
            </td>
        </tr>
        <tr>
            <td height=80 bgcolor=#6c6c6c align=center>
                <font color="#FFFFFF">
                    版权所有:<a href="http://blog.csdn.net/cherish0222">Vmorish</a><br>
                    E-mail:vmorish@163.com
                </font>
            </td>
        </tr>
    </table>
 
</body>
 
</html>
로그인 후 복사

효과:


그런 다음 메인 페이지로 이동할 수 있습니다

<!-- 2.留言本首页 index.php -->
<!-- 本页面显示十条最近的的留言,并且有分页功能 -->
<html>
 
<head>
    <title>欢迎来到陈雨情的留言本吼吼吼</title>
    <style type="text/css">
        TD{
            font-size: 12px;
            line-height: 150%;
        }
    </style>
</head>
 
<body>
    <table border=1 cellspacing=0 cellspadding=0 style="border-collapse:collapse" align=center width=400 bordercolor=black height=382>
        <tr>
            <td height=100 bgcolor=#6c6c6c style="font-size:30px;line-height:30px">
                <font color=#ffffff face="黑体">欢迎来到×××的留言本吼吼吼</font>
            </td>
        </tr>
        <tr>
            <td height=25>
                 <a href=send.php>[我要写留言]</a> 
                 <a href=login.php>[管理留言]</a>
            </td>
        </tr>
        <tr>
            <td height=200>
                <?php
                    $link = mysqli_connect("127.0.0.1","root","Vmorish");
                    mysqli_select_db($link,"gbook");
                    $query = "select * from message";
                    $result = mysqli_query($link,$query);
                    if( mysqli_num_rows($result) < 1){
                        echo " 目前数据表中还没有任何留言!";
                    }else{
                        $totalnum = mysqli_num_rows($result);//获取数据库中所有数据条数
                        $pagesize = 7;//每页显示7条
                        $page = $_GET["page"];
                        if( $page == ""){
                            $page = 1;
                        }
                        $begin = ($page-1)*$pagesize;
                        $totalpage = ceil($totalnum/$pagesize);
                        //输出分页信息
                        echo "<table border=0 width=95%><tr><td>";
                        $datanum = mysqli_num_rows($result);
                        echo "共有".$totalnum."条留言,每页".$pagesize."条,共".$totalpage."页。<br>";
                        //输出页码
                        for( $i = 1; $i <= $totalpage; $i++){
                            echo "<a href=index.php?page=".$i.">[".$i."] </a>";
                        }
                        echo "<br>";
                        //从message表中查询当前页面所要显示的留言,并根据时间排序
                        $query = "select * from message order by addtime desc limit $begin,$pagesize";
                        $result = mysqli_query($link,$query);
                        $datanum = mysqli_num_rows($result);
                        //循环输出所有留言,如果管理员已经回复则同时输出回复
                        for( $i = 1; $i <= $datanum; $i++){//$datanum???
                            $info = mysqli_fetch_array($result);
                            echo "->[".$info[&#39;author&#39;]."]于".$info[&#39;addtime&#39;]."说:<br>";
                            echo "  ".$info[&#39;content&#39;]."<br>";
                            if( $info[&#39;reply&#39;] != ""){
                                // <b></b>显示粗体
                                echo "<b>管理员回复:</b>".$info[&#39;reply&#39;]."<br>";
                            }
                            echo "<hr>";
                        }//else结束
                        echo "</td></tr></table>";
                    }
                    mysqli_close($link)
                 ?>
            </td>
        </tr>
        <tr>
            <td height=80 bgcolor=#6c6c6c align=center>
                <font color="#FFFFFF">
                    版权所有:<a href="http://blog.csdn.net/cherish0222">Vmorish</a><br>
                    E-mail:vmorish@163.com
                </font>
            </td>
        </tr>
    </table>
 
</body>
 
</html>
로그인 후 복사

효과:


그런 다음 관리자가 로그인합니다

<!-- 3.管理员登录页面 login.php -->
<!-- 供管理员登录 -->
<!-- 体会session实现用户登录的方法 -->
 
<?php
    $name = $_POST["name"];
    if( $name != ""){
        $password = $_POST[&#39;password&#39;];
        $link = mysqli_connect("127.0.0.1","root","Vmorish");
        mysqli_select_db($link,"gbook");
        $query = "select * from admin where username = &#39;$name&#39;";
        $result = mysqli_query($link,$query);
        if( mysqli_num_rows($result) < 1){
            echo "该用户不存在,请重新登录!<br>";
        }else{
            $info = mysqli_fetch_array($result);
            if( $info[&#39;userpass&#39;] != $password){
                echo "密码输入错误,请重新登录!<br>";
            }else{
                //如果用户名密码都正确,则注册一个session来标记其登录状态
                echo "hhhh<br>";
                session_start();
                // $_SESSION["login"] = "YES";
                echo "<script language=javascript>alert(&#39;登录成功!&#39;);location.href=&#39;manage.php&#39;;</script>";
            }
        }
        mysqli_close($link);
    }
 ?>
 
<html>
 
<head>
    <title>欢迎来到陈雨情的留言本吼吼吼</title>
</heda>
 
<body>
 
    <table border=1 cellspacing=0 cellspadding=0 style="border-collapse:collapse" align=center width=400 bordercolor=black height="358">
        <tr>
            <td height=100 bgcolor=#6c6c6c style="font-size:30px;line-height:30px">
                <font color=#ffffff face="黑体">欢迎来到×××的留言本吼吼吼</font>
            </td>
        </tr>
        <tr>
            <td height=25>
                 <a href=send.php>[我要写留言]</a> 
                 <a href=login.php>[管理留言]</a>
            </td>
        </tr>
        <tr>
            <td height=178>
                <form method="POST" action="login.php">
                    <table border="1" width="95%" id="table1" cellspcing="0" cellpadding="0" bordercolor="#808080" style="border-collapse" height="154">
                        <tr>
                            <td colspan="2" height="29">
                                <p align="center">欢迎管理员登录</p>
                            </td>
                        </tr>
                        <tr>
                            <td width="32%">
                                <p align="center">用户名</P>
                            </td>
                            <td width="67%">
                                <input type="text" name="name" size="20">
                            </td>
                        </tr>
                        <tr>
                            <td width="32%">
                                <p align="center">密 码</p>
                            </td>
                            <td>
                                <input type="password" name="password" size="20">
                            </td>
                        </tr>
                        <tr>
                            <td width="99%" colspan="2">
                                <p align="center"><input type="submit" value="登录" name="B1"></p>
                            </td>
                        </tr>
                    </table>
                </form>
            </td>
        </tr>
        <tr>
            <td height=80 bgcolor=#6c6c6c align=center>
                <font color="#FFFFFF">
                    版权所有:<a href="http://blog.csdn.net/cherish0222">Vmorish</a><br>
                    E-mail:vmorish@163.com
                </font>
            </td>
        </tr>
    </table>
 
</body>
 
</html>
로그인 후 복사

효과:


man age.php를 입력하고 응답하세요. php는 이전 것과 유사하므로 여기서는 제공하지 않겠습니다(아직 작성하지 않았지만... 구현은 이전 것과 유사합니다

마지막으로 로그아웃하고 로그인합니다

<!-- 6.注销登录页面 -->
<?php
    session_start();
    $_SESSION["login"]="";
    echo "已成功退出。[<a href=index.php>回首页</a>]";
    exit;
 ?>
로그인 후 복사

추천 학습: "PHP 비디오 튜토리얼"

위 내용은 PHP로 간단한 게시판을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿