欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

比较完整的留言板代码,添加注释,易懂

程序员文章站 2022-05-31 09:59:50
...
1.index.htm
<html>
    <head>
    <title>µÇ¼ϵͳÊ×Ò³</title>
    </head>
     
    <body>
        <table align="center" vspace="80">
        <form action="member_login.php" method="post">
            <tr>
                <td>ÕË»§£º</td>
                <td><input type="text" name="username" /></td>
            </tr>
            <tr>
                <td>ÃÜÂ룺</td>
                <td><input type="password" name="password" /></td>
            </tr>
            <tr>
                <td><input type="submit" value="怬" /></td>
                <td><input type="reset" value="ÖØÖÃ" /></td>
            </tr>
            <tr>
                <td colspan="2">ûÓÐÕË»§£¿<a href="register.php">ÂíÉÏ×¢²á.....</a></td>
            </tr>
            <tr>
                <td colspan="2" align="left"><font size="-1"><a href="admin.php">¹ÜÀíÔ±µÇ¼</a></font></td>
            </tr>
        </form>
        </table>
    </body>
 
</html>

2.conn.php

<?php
if(!isset($_SESSION)){
    session_start();
}
define("DB_HOST","localhost");
define("DB_USER","root");
define("DB_PASS","123456");   //数据库密码
define("DB_NAME","mylog");
 
    function getDBlink(){
        $link=mysql_connect(DB_HOST,DB_USER,DB_PASS) or die ("数据库连接失败");
        mysql_select_db("mylog",$link) or die ("该数据库不存在");
        mysql_query("set names 'GBK'");
        return $link;
    }
?>

3.member_index.php

<html>
<head>
<title>显示主界面</title>
</head>
<body>
<?php
    session_start();  //储存用户信息开始
    if(empty($_SESSION["pass"])){  //如果输入的的密码为空
    echo "您无权进入本系统,<a href='index.htm'>点击返回登录界面</a>"; //提示 你无权进入系统,并返回登陆界面
    exit;//退出
    }
    if($_SESSION["pass"]=="ok") //如果密码正确
    {
        include("conn.php");  //调取数据库文件 conn.php
        $link=getDBlink(); 
        $name=$_SESSION['name'];
    }
?>
<!-- 注销的按钮,返回文件 session_destory.php -->
<p><a href="session_destroy.php">注销</a></p>  
 
<!-- 输出用户名,使用echo $name,添加新留言,跳往new_message.php文件 -->
<p><? echo $name; ?> <a href="modify.php">修改个人信息</a> <a href="new_message.php">添加新留言</a> </p> 
<hr />
<?php 
//此段为获取并分页
        $pagesize=3;  //定义页面为3页
        $url=$_SERVER["REQUEST_URI"];   //取得并分析当前的url
        $url=parse_url($url);  //解释$url变量分析的url。 
        //parse_url函数,解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
         
        $url=$url[path];
         
        $numq=mysql_query("SELECT * FROM message"); //从数据库中选择Message。
        $num=mysql_num_rows($numq);         //取得总条数
        $sumpage=ceil($num/$pagesize);      //取得总共的页数
        if($_GET[page])  //如果获取到的page
        {
            $pageval=$_GET[page]; //获取总页数
            $page=($pageval-1)*$pagesize;   //当前页数的算法,总页数减一乘以总共页数
            $page.=",";
        }
         
        if($num<=$pagesize)
        {
            echo "共 1 页";  
            echo "<br><p>";
        }
        else
        {   
            if($pageval<=1) $pageval=1;
            echo "共 $sumpage 页 ";
             
            echo "<a href=$url?page=".($pageval-1).">上一页</a>  |  <a href=$url?page=".($pageval+1).">下一页</a>"." 第 $pageval 页";
            echo "<br><p>";
        }
        $sql="SELECT * FROM message ORDER BY id DESC limit $page $pagesize";
        $query=mysql_query($sql);
        while($result=mysql_fetch_array($query))
        {   
            echo "<font color=green>主题:</font>".$result['theme']."<br>";
            echo "内容:".$result['content']."<br>";
            echo $result['username']."&nbsp;&nbsp;"."发表于"."&nbsp;&nbsp;".$result['time']."<br>";
            echo "<br><br>";
        }
     
?>
 
 
 
 
</body>
</html>

4.member_login.php

<html>
<head>
<title>登录提示</title>
</head>
<body>
<?php
    include_once("conn.php");  //调取头部数据库文件conn.php
     
    if(empty($_POST['username']))  //如果输入用户名为空
    {
        echo "账户不能为空,5秒后自动返回登录界面";  //提示错误,并返回界面
        header("refresh:5;URL='index.htm'");  //5秒返回的提示代码
    }
    elseif(empty($_POST['password']))  //如果密码为空
    {
        echo "密码不能为空,5秒后自动返回登录页面";  //提示错误并返回界面
        header("refresh:5;URL='index.htm'");  //5秒返回的提示代码
    }
    //否则,将进入正常流程
    else{
    $link=getDBlink();  
    $name=$_POST[username];  //获取表单传送的name
    $pw=md5($_POST[password]);// 获取表单传送的经过MD5加密的password
    $sql="SELECT * FROM userinfo WHERE username='".$name."'"; //匹配数据库中的username
    //mysql_query为向数据库发送一条查询
    $result=mysql_query($sql); //向数据库中发送一条查询
    $num=mysql_num_rows($result);  //mysql_num_rows为结果集中行的数目,进队mysql,即数据库有效。
     
    if($num==0) //如果变量$num为0
    {
        echo "账户不存在,5秒返回登录界面";  //提示账户不存在。返回首页
        header("refresh:5;URL='index.htm'");
    }
     
    while($row=mysql_fetch_object($result)) //while 循环语句
    // mysql_fetch_object — 从结果集中取得一行作为对象   
     
    {
        if($row->password!=$pw) //如果变量$row传值进入password,不等于$pw,则为密码错误
        {
            echo "账户名或密码错误,5秒返回登录页面";
            header("refresh:5;URL='index.htm'");
        }
        else //否则,账号密码输入正确,登陆成功,跳转到member_index.php
        {
            session_start();
            $_SESSION["pass"]="ok";
            $_SESSION["name"]=$_POST['username'];
            header("location: member_index.php");
            mysql_close();
        }
    }
    }
     
    ?>
</body>
</html>

5.message_delete.php

<html>
<head>
<title>留言删除</title>
</head>
<body>
<?php
    $id=$_GET['id']; //获取留言文件的id号
    include("conn.php"); //调取头部数据库文件conn.php
    $link=getDBlink(); 
    $sql="DELETE FROM message WHERE id='$id'"; //从数据库中删除id.使用DELETE FROM message WHERE id='$id';
    $query=mysql_query($sql);
    $sql_1="SELECT * FROM message WHERE id='$id'"; //使用变量$sql_1重新再获取一遍id
    $query=mysql_query($sql_1);
    $result=mysql_fetch_array($query);  //mysql_fetch_query,从结果集中取得一行作为关联数组,或数字数组
    if(empty($result))//如果变量$result中的内容为空,则表示删除成功
    echo "删除成功,<a href='message_manage.php'>点击返回主界面</a>";
 
?>
 
</body>
</html>

6.message_manage.php

<html>
<head>
<title>留言管理</title>
</head>
<body>
<?php
 //消息管理页面
    session_start();  //开始记录
    if(empty($_SESSION['pass'])){  //如果输入的密码为空,则无权进入
    echo "对不起,您无权使用本系统,<a href='index.htm'>点击进入登录系统</a>";
    exit;}
    if($_SESSION['name']=="admin"){
?>           
    <p><a href="session_destroy.php">注销</a></p>
    <p>留言管理&nbsp;&nbsp;<a href="user_manage.php">查看用户信息</a> &nbsp;&nbsp;&nbsp;管理员界面</p>
    <hr />
<?php
    include("conn.php");
    $link=getDBlink();
     
    $pagesize=3;
        $url=$_SERVER["REQUEST_URI"];   //取得并分析当前的url
        $url=parse_url($url); //解析url
        $url=$url[path];
         
        $numq=mysql_query("SELECT * FROM message"); //选择message数据库
        $num=mysql_num_rows($numq);         //取得总条数
        $sumpage=ceil($num/$pagesize);      //取得总共的页数
        if($_GET['page'])  //获得页数
        {
            $pageval=$_GET['page'];
            $page=($pageval-1)*$pagesize;
            $page.=",";
        } //写到这里!
         
        if($num<=$pagesize)
        {
            echo "共 1 页";
            echo "<br><p>";
        }
        else
        {   
            if($pageval<=1) $pageval=1;
            echo "共 $sumpage 页 ";
             
            echo "<a href=$url?page=".($pageval-1).">上一页</a>  |  <a href=$url?page=".($pageval+1).">下一页</a>"." 第 $pageval 页";
            echo "<br><p>";
        }
        $sql="SELECT * FROM message ORDER BY id DESC limit $page $pagesize";
        $query=mysql_query($sql);
        while($result=mysql_fetch_array($query))
        {           
            $id=$result['id'];                  //获取要删除留言的序列号
            //echo $result['id']."<br>";
            echo "主题:".$result['theme']."<br>";
            echo "内容:".$result['content']."<br>";
            echo $result['username']."发表于".$result['time']."<br>";
            echo "<a href=message_delete.php?id=".$result['id'].">删除</a>";   //使用GET传送要删除的id
            echo "<br><br>";
        }
             
         
}
    ?>
 
</body>
</html>

7.modify_post.php

<html>
<head>
<title>修改信息提示</title>
</head>
<body>
<?php
    session_start();
    if(empty($_SESSION['name'])) //如果输入名字为空
    header("location:index.htm");//返回首页
    include("conn.php"); //调取数据库文件
    $link=getDBlink();
    $name=$_SESSION['name']; //设置表单获取的名称
    $new_nickname=$_POST['nickname'];
    $new_phonenumber=$_POST['phonenumber'];
    $new_msn=$_POST['msn'];
    $new_email=$_POST['email'];
     
    //对修改信息合法性进行判断
    if(!empty($_POST['phonenumber'])&&!is_numeric($_POST['phonenumber']))//判断输入电话号码是否为空,为空则返回修改
    {echo "电话号码必须为数字,<a href='modify.php'>返回重新修改</a>";exit;}
    elseif(!empty($_POST['msn'])&&!ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)(.)([0-9a-zA-Z]+)",$_POST['msn']))//判断msn是否为空或输入错误,输入错误则返回修改
    {echo "MSN格式不合法,<a href='modify.php'>返回重新修改</a>";exit;}
    elseif(!empty($_POST['email'])&&!ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)(.)([0-9a-zA-Z]+)",$_POST['email']))//判断输入的邮箱是否合法,为空或错误则翻回修改
    {echo "邮箱格式不合法,<a href='modify.php'>返回重新修改</a>"; exit;}
    else //否则,输入全部正确则写入数据库
    {
        $sql="UPDATE userinfo SET nickname='$new_nickname' WHERE username='$name'";
        $result=mysql_query($sql);
        $sql="UPDATE userinfo SET phonenumber='$new_phonenumber' WHERE username='$name'";
        $result=mysql_query($sql);
        $sql="UPDATE userinfo SET msn='$new_msn' WHERE username='$name'";
        $result=mysql_query($sql);
        $sql="UPDATE userinfo SET email='$new_email' WHERE username='$name'";
        $result=mysql_query($sql);
     
        $sql="SELECT * FROM userinfo WHERE username='$name'";
        $result=mysql_query($sql); //获取数据库语法,检测。
     
        if(!$rs=mysql_fetch_object($result))
        {
            echo "错误";
            exit;
        }
     
    }
?>
<p><a href="session_destroy.php">注销</a></p>
<p><? echo $name; ?> <a href="member_index.php">返回主页面</a> <p align="center">修改个人信息</p>
<hr />
<p align="center">修改成功,以下是您修改后的信息</p>
<table align="center">
    <tr>
        <td>昵称:</td>
        <td><input type="text" name="nickname" value="<? echo $rs->nickname; ?>" /></td>
    </tr>
    <tr>
        <td>电话:</td>
        <td><input type="text" name="phonenumber" value="<? echo $rs->phonenumber; ?>" /></td>
    </tr>
    <tr>
        <td>MSN:</td>
        <td><input type="text" name="msn" value="<? echo $rs->msn; ?>" /></td>
    </tr>
    <tr>
        <td>邮箱:</td>
        <td><input type="text" name="email" value="<? echo $rs->email; ?>" /></td>
    </tr>
</table>
 
 
</body>
</html>

8.modify.php

<html>
<head>
<title>修改个人信息</title>
</head>
<body>
 
 
<?php
    session_start();
    if(empty($_SESSION['pass'])){
    echo "对不起,您无权进入本系统,<a href='index.htm'>点击进入登陆界面</a>";
    exit;}
    $name=$_SESSION['name'];
?>
 
 
<p><a href="session_destroy.php">注销</a></p>
<p><? echo $name; ?> <a href="member_index.php">返回主页面</a> <p align="center">修改个人信息</p>
<hr />
 
 
<?php
    include("conn.php");
    $link=getDBlink();
    $sql="SELECT * FROM userinfo WHERE username='$name'";
    $query=mysql_query($sql);
    $result=mysql_fetch_array($query);
?>
 
<table align="center">
    <form action="modify_post.php" method="post">
     
    <tr>
        <td>昵称:</td>
        <td><input type="text" name="nickname" value="<? echo $result['nickname']; ?>" /></td>
    </tr>
    <tr>
        <td>电话:</td>
        <td><input type="text" name="phonenumber" value="<? echo $result['phonenumber']; ?>" /></td>
    </tr>
    <tr>
        <td>MSN:</td>
        <td><input type="text" name="msn" value="<? echo $result['msn']; ?>" /></td>
    </tr>
    <tr>
        <td>邮箱:</td>
        <td><input type="text" name="email" value="<? echo $result['email']; ?>" /></td>
    </tr>
     
    <tr>
        <td><input type="submit" name="submit" value="提交" /></td>
        <td><input type="reset" name="reset" value="重置" /></td>
    </tr>
    </form>
</table>
 
 
</body>
</html>

9.register_get.php

<html>
<head>
<title>注册提示</title>
</head>
<body>
<?php
    session_start();
    $name=trim($_POST['username']);   //用trim函数去除首位空格防止用户名为空格注册
    $code=$_POST['code'];  //获取验证码
    $checkcode=$_SESSION['code']; //
    include("conn.php"); //读取数据库文件
    $link=getDBlink(); 
    $sql="SELECT * FROM userinfo WHERE username='$name'"; //写入数据库语法
    $query=mysql_query($sql); //读取$sql语法
    $query_result=mysql_fetch_array($query); //从$query结果集中取得一行作为关联数组,或数字数组
     
    //以下对用户注册信息进行判断 
 
if(empty($name))  //如果输入的名字为空,
echo "用户名不能为空,<a href='register.php'>返回重新注册</a>"; //输出错误,并返回注册页面
elseif(!empty($query_result))
echo "对不起,该用户名已被注册,请重新选择用户名,<a href='register.php'>点击返回登录界面</a>";
elseif(empty($_POST[password]))
echo "密码不能为空,<a href='register.php'>返回重新住注册</a>";
elseif($_POST[password]!=$_POST[re_password])
echo "两次密码输入不一致,<a href='register.php'>返回重新注册</a>";
elseif(empty($_POST[sex]))
echo "性别必须选择,<a href='register.php'>返回重新注册</a>";
elseif(!empty($_POST['phonenumber'])&&!is_numeric($_POST['phonenumber']))
echo "电话号码必须为数字,<a href='register.php'>返回重新注册</a>";
elseif(!empty($_POST['msn'])&&!ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)(.)([0-9a-zA-Z]+)",$_POST['msn']))
echo "MSN格式不合法,<a href='register.php'>返回重新注册</a>";
elseif(!empty($_POST['email'])&&!ereg("([0-9a-zA-Z]+)([@])([0-9a-zA-Z]+)(.)([0-9a-zA-Z]+)",$_POST['email']))
echo "邮箱格式不合法,<a href='register.php'>返回重新注册</a>";  
elseif($checkcode!=$code)
echo "验证码输入错误,<a href='register.php'>返回重新注册</a>";
else //如果全部输入,并检测无误,则进入写入数据库环节
{
    //写入数据库语法
    $sql_1="INSERT INTO userinfo(id,username,password,sex,nickname,phonenumber,msn,email) VALUES ('','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['sex']."','".$_POST['nickname']."','".$_POST['phonenumber']."','".$_POST['msn']."','".$_POST['email']."')";
     
    $result_1=mysql_query($sql_1) or die (mysql_error()); //向数据库发送一条查询
    $name=$_POST['username'];//获取用户名
    $db1="userinfo";  //数据表单名 userinfo
    function result($db,$name){    //建立函数 result
        $sql="select * from $db where username='$name'";  //从数据库中选择变量$db中的表单,和查询用户名$name
        $query=mysql_query($sql);//向数据库发送查询语句
        $num=mysql_num_rows($query); 
        return $num; //返回变量$num
    }
    $row1=result($db1,$name);
    if($row1==0)
    {
        echo "注册失败,<a href='register.php'>请重新注册</a>";
    }
    else
    {
        session_start();
        $_SESSION['pass']="ok";
        $_SESSION['name']=$_POST['username'];
        echo "$name,恭喜您注册成功!<a href='member_index.php'>点击立刻进入主界面</a>";
    }
     
}  
?>       
</body>
</html>

10.register.php

<html>
<head>
<title>注册系统首页</title>
</head>
    <body>
    <p align="left"><a href="index.htm">登录</a></p>
    <p align="center"><font size="+3" color="#3300FF">欢迎新用户注册</font></p>
     
    <table align="center">
    <form action="register_get.php" method="post">
    <tr>
        <td>用户名:<font color="#FF0000">*</font></td>
        <td><input type="text" name="username" /><td>
    </tr>
    <tr>
        <td>密码:<font color="#FF0000">*</font></td>
        <td><input type="password" name="password" /></td>
    </tr>
    <tr>
        <td>再次输入密码:<font color="#FF0000">*</font></td>
        <td><input type="password" name="re_password" /></td>
    </tr>
    <tr>
        <td>性别:<font color="#FF0000">*</font></td>
        <td>男<input type="radio" name="sex" value="男" />&nbsp;&nbsp;&nbsp;&nbsp;女<input type="radio" name="sex" value="女" /></td>
    </tr>
    <tr>
        <td>昵称:</td>
        <td><input type="text" name="nickname" /></td>
    </tr>
    <tr>
        <td>电话:</td>
        <td><input type="text" name="phonenumber" /></td>
    </tr>
    <tr>
        <td>MSN:</td>
        <td><input type="text" name="msn" /></td>
    </tr>
    <tr>
        <td>邮箱:</td>
        <td><input type="text" name="email" /></td>
    </tr>
    <tr>
        <td></td>
        <td><img src="authcode.php"></td>
    </tr>
    <tr>
        <td>请输入验证码:<font color="#FF0000">*</font></td>
        <td><input type="text" name="code"></td>
    </tr>
    <tr>
        <td colspan="2">其中加<font color="#FF0000">*</font>为必填</td>
    </tr>
    <tr>
        <td><input type="submit" name="submit" value="提交" /></td>
        <td><input type="reset" name="reset" value="重置" /></td>
    </tr>
    </form>
    </table>
     
    </body>
</html>