练习-----部门内部留言板(0526)
题目:部门内部留言板
一、语言和环境
实现语言:PHP
二、要求:
本软件是作为部门内员工之间留言及发送消息使用。
系统必须通过口令验证,登录进入。方法是从数据库内取出用户姓名和口令的数据进行校验。
用户管理的工作(比如增加,删除,修改用户)通过直接对数据库操作实现,不在本系统中实现,可以自行在数据库用户表中增加测试数据。
系统包含四部分功能
1 登录:验证用户名与口令,保存会话信息,进入<>主界面。
2 退出:退出使用状态,清空会话信息,返回登录界面。
3 信息查询:显示给当前登录人留的信息以及公共信息(给所有人发送)。
4 发信息:当前登录人员用来给其他人发信息的功能。信息的内容包括:信息的编号(自动编号),发送人,信息内容,接收人,发送时间等,可以发给所有人,也可以发给某个人。
登录页面:login.php
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>登录</title> 6 </head> 7 8 <body> 9 <form action="loginchu.php" method="post"> 10 <table width="30%" border="2" bordercolor="#00CCFF" cellpadding="2" cellspacing="2" align="center" > 11 <tr align="center"><td colspan="2"><font color="#0000FF"><h1>开发部内部留言板</h1></font></td></tr> 12 <tr align="center"><td align="right" width="50%">用户名:</td><td align="left"><input type="text" name="username"></td></tr> 13 <tr align="center"><td align="right">口令:</td><td align="left"><input type="text" name="password"></td></tr> 14 <tr><td colspan="2"><center><input type="submit" value="登录"> <a href="login.php"><input type="button" value="复位"></a></center></td></tr> 15 </table> 16 </form> 17 </body> 18 </html>
登录处理页面:loginchu.php
1 <?php 2 //处理登录 3 session_start(); 4 5 $username=$_POST["username"]; 6 7 $password=$_POST["password"]; 8 9 include("../DBDA.class.php"); 10 $db=new DBDA(); 11 12 $sql="select count(*) from YuanGong where UserName='{$username}' and PassWord='{$password}'"; 13 14 $r=$db->StrQuery($sql); 15 if($r==1) 16 { 17 $_SESSION["username"]=$username; 18 header("location:main.php"); 19 20 } 21 else 22 { 23 header("location:login.php"); 24 }
运行页面:
主页面:main.php
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>留言</title> 6 </head> 7 8 <body> 9 10 <div> 11 <a href="message.php">发布信息</a> 12 <a href="tuichu.php">退出系统</a> 13 </div><br /> 14 <div>留言信息:</div><br /> 15 <table width="100%" border="2" bordercolor="#00CCFF" cellpadding="2" cellspacing="2"> 16 <tr> 17 <td>发送人</td> 18 <td>发送时间</td> 19 <td>接收人</td> 20 <td>信息内容</td> 21 <td>接收状态</td> 22 </tr> 23 24 <?php 25 session_start(); 26 27 include ("../DBDA.class.php"); 28 $db=new DBDA(); 29 30 if(empty($_SESSION["username"])) 31 { 32 header("location:login.php"); 33 exit; 34 } 35 $username=$_SESSION["username"]; 36 37 38 $sql="select * from LiuYan where Recever='{$username}' or Recever='suoyou'"; 39 $attr=$db->Query($sql); 40 foreach($attr as $v) 41 { 42 //处理发送者姓名 43 $sqlfa="select Name from YuanGong where UserName='{$v[1]}'"; 44 $namefa=$db->StrQuery($sqlfa); 45 //处理接收者姓名(接收者是登录者) 46 $namejie=""; 47 if($v[2]=="suoyou") 48 { 49 $namejie="所有人"; 50 } 51 else 52 { 53 $sqljie="select Name from YuanGong where UserName='{$username}'"; 54 $namejie=$db->StrQuery($sqljie); 55 } 56 57 $zt=""; 58 if($v[5]==1) 59 { 60 $zt="<span style='color:yellow'>已接收</span>"; 61 } 62 else 63 { 64 $zt="<span style='background-color:yellow'><a href='jieshou.php?ids={$v[0]}'>未接收</a></span>"; 65 } 66 67 echo "<tr> 68 <td>{$namefa}</td> 69 <td>{$v[3]}</td> 70 <td>{$namejie}</td> 71 <td>{$v[4]}</td> 72 <td>{$zt}</td> 73 </tr>"; 74 } 75 76 ?> 77 </table> 78 </body> 79 </html>
运行页面:
发送信息页面:message.php
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 6 <title>发消息</title> 7 </head> 8 9 <body> 10 <?php 11 session_start(); 12 if(empty($_SESSION["username"])) 13 { 14 header("location:login.php"); 15 } 16 $username=$_SESSION["username"]; 17 include ("../DBDA.class.php"); 18 $db=new DBDA(); 19 20 ?> 21 <div > 22 <a href="main.php">查看信息</a> 23 <a href="tuichu.php">退出系统</a> 24 </div><br /> 25 26 <div>信息发送:</div><br /> 27 <form action="messagechu.php" method="post"> 28 <table width="30%" border="2" bordercolor="#00CCFF" cellpadding="2" cellspacing="2" > 29 30 <tr><td align="right">收件人:</td><td align="left"> 31 <select name="recever"> 32 <option value="suoyou">所有人</option> 33 <?php 34 //根据用户名找对应的好友 35 $sql="select Friend from Friend where Me='{$username}'"; 36 $attr=$db->Query($sql); 37 foreach($attr as $v) 38 { 39 $sql1="select Name from YuanGong where UserName='{$v[0]}'"; 40 $r=$db->StrQuery($sql1); 41 echo "<option value='{$v[0]}'>{$r}</option>"; 42 } 43 ?> 44 </select> 45 </td></tr> 46 47 <!--<tr><td align="right">收件人:</td><td align="left"><input type="text" name="recever" value="{$sender}" ></td></tr> --> 48 <tr><td align="right">信息内容:</td><td align="left"><textarea rows="3" cols="25" name="content"></textarea></td></tr> 49 <tr align="center"><td colspan="2"><input type="submit" value="发送"> <a href="message.php"><input type="button" value="复位"></a></td></tr> 50 </table> 51 </form> 52 53 </body> 54 </html>
信息处理页面:messagechu.php
1 <?php 2 session_start(); 3 4 $sender=$_SESSION["username"]; 5 $recever=$_POST["recever"]; 6 $content=$_POST["content"]; 7 $rq = date("Y-m-d H:i:s",time()); 8 9 include("../DBDA.class.php"); 10 $db=new DBDA(); 11 12 $sql="insert into LiuYan values ('','{$sender}','{$recever}','{$rq}','{$content}',false)"; 13 echo $sql; 14 15 16 $r=$db->Query($sql,1); 17 if($r) 18 { 19 header("location:main.php"); 20 } 21 else 22 { 23 header("location:message.php"); 24 }
运行页面:
退出系统处理页面:
1 <?php 2 3 session_start(); 4 5 unset($_SESSION["username"]);//清空 6 7 header("location:login.php");
接受状态处理页面:
1 <?php 2 $ids=$_GET["ids"]; 3 4 include("../DBDA.class.php"); 5 $db=new DBDA(); 6 7 $sql="update LiuYan set States=true where Ids='{$ids}'"; 8 9 if($db->Query($sql,1)) 10 { 11 header("location:main.php"); 12 } 13 else 14 { 15 echo "接受失败!"; 16 }
注意内容:
在给所有人发送信息时如何处理:
<tr><td align="right">收件人:</td><td align="left"> <select name="recever"> <option value="suoyou">所有人</option> <?php //根据登陆的用户名找对应的好友 $sql="select Friend from Friend where Me='{$username}'"; $attr=$db->Query($sql); foreach($attr as $v) {
//将找出的用户名转换成对应的姓名 $sql1="select Name from YuanGong where UserName='{$v[0]}'"; $r=$db->StrQuery($sql1); echo "<option value='{$v[0]}'>{$r}</option>"; } ?> </select> </td></tr>