比较完整的留言板代码,添加注释,易懂
程序员文章站
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']." "."发表于"." ".$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>留言管理 <a href="user_manage.php">查看用户信息</a> 管理员界面</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="男" /> 女<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>