inglun_wid
int
物品id
默认值为0
3
user_name
varchar(20)
会员名
4
pinglun_nr
varchar(200)
内容
5
Pinglun_time
datetime
时间
表6网站新闻表(ershou_news)
序号
字段名
字段类别
说明
备注
1
nid
tinyint(6)
设置新闻编号
2
news_title
varchar(100)
设置新闻标题
3
news_class
varchar(20)
设置新闻类别
4
news_ly
varchar(30)
新闻来源
5
news_jishu
int
浏览次数
默认值为0
6
news_nr
text
新闻内容
7
news_time
datetime
设置添加时间
8
news_guoqi
Char(2)
设置是否过期
默认值为1
9
news_name
varchar(20)
发表新闻的管理员帐号
主键
表7物品信息表(ershou_wupin)
序号
字段名
字段类别
说明
备注
1
wid
int
物品id
主键
2
bclass_name
varchar(20)
所属大类别
3
class_name
varchar(20)
所属小类别
4
wuping_name
varchar(40)
物品名称
5
wuping_jishu
int
浏览次数
默认设置为0
6
wuping_nr
text
物品介绍
7
user_name
varchar(20)
用户帐号
8
wuping_time
datetime
发表时间
9
wuping_guoqi
int
交易状态
默认设置为1
表8:管理员信息表(ershou_manager)
序号
字段名
字段类别
说明
备注
2
manager_name
varchar(20)
管理员名称
主键
3
manager_pass
varchar(20)
管理员密码
4
manager_sup
int
标志为管理员权限
默认值为0
3.5系统安全
MD5是在Web应用程序中最常用的密码加密算法。由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文。
所谓MD5,即"Message-DigestAlgorithm5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于--这种"压缩"是不可逆的。
在Web应用程序中使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得。但攻击者不但拥有数据量巨大的密码字典,而且建立了很多MD5原文/密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径。然而,MD5密文数据库所使用的是最常规的MD5加密算法:原文-->MD5-->密文。因此,使用字符串次序干涉MD5算法,使现成的MD5密文数据库无所作为。此函数是把MD5运算后的密文字符串的顺序调转后,再进行一次MD5运算。函数代码如下:
functionmd5_5($psw)
{//得到数据的密文
$psw=md5($psw);
//再把密文字符串的字符顺序调转
$psw=strrev($psw);
//最后再进行一次MD5运算并返回
returnmd5($psw);
}
4系统的实现
4.1系统的主要功能
归纳起来,系统的功能大约有以下几点:用户注册,信息查询,发布信息,找回密码等。
4.1.1注册
为了实现不同地域的学生通过网络、不择时间地自主填写并上传自己的基本档案(不合要求的档案可以由管理员及时清除),需要录入基本的个人信息。
1.步骤:
(1)开始注册;
(2)填写个人信息;
(3)提交(如失败返回填写页面重填写;如果重名错误,显示提示信息);
(4)进入登录界面;
(3)登录成功,进入主界面。
2.主要验证代码:
//值存在则继续执行
if(($_GET["ac"]=="in")and(isset($_POST["user_name"])))
{//判断验证码是否正确
if($_POST["ac_uthnum"]==$_SESSION["user_authnum"])
{
$user_name=$_POST["user_name"];
$user_name=trim($user_name);
$user_pass1=$_POST["user_pass"];
$user_pass1=trim($user_pass1);
$user_pass=md5_5($user_pass1);//密码进行MD5加密
$user_question=$_POST["user_question"];
$user_angser1=$_POST["user_angser"];
$user_angser1=trim($user_angser1);
$user_angser=md5_5($user_angser1);//密码进行MD5加密
$user_school=$_POST["user_school"];
$user_phone=$_POST["user_phone"];
$user_mphone=$_POST["user_mphone"];
$user_qq=$_POST["user_qq"];
$user_email=$_POST["user_email"];
$user_kt="1";
//查询是否存在当前注册用户名
$query="selectcount(*)countfromershou_userwhereuser_name='$user_name'";
$result=mysql_query($query);
while($info=mysql_fetch_array($result))
{$count=$info["count"];}
if($count==0){//不存在才执行注册
$sqladd="INSERTINTOershou_userSETuser_name='$user_name',
user_pass='$user_pass',
user_question='$user_question',
user_angser='$user_angser',
user_school='$user_school',
user_phone='$user_phone',
user_mphone='$user_mphone',
user_qq='$user_qq',
user_email='$user_email',
user_kt='$user_kt',
user_date=NOW()";
else{//存在相同用户名则重新填写
echo'
该会员已存在返回重新填写
';}
}
3.主要窗口如下图:
图10用户注册窗口
4.1.2搜索信息
为了实现快速浏览网站信息,各用户可以根据所须信息类别并填写查询关键字,很快的找出需要的信息。
1.步骤:
(1)填写信息类别;
(2)修改或删除信息类别;
(3)浏览信息类别。
2.主要代码:
$sql="selectcount(*)countfromershou_wupinwherebclass_name='$bclass_name'andwupin_namelike'%$searchcontent%'";
$result=mysql_query($sql)ordie(mysql_errno().":".mysql_error()."\n");
$rs=mysql_fetch_object($result);
$recountCount=$rs->count;
$show=20;
$totalPage=ceil($recountCount/$show);
$page=(isset($_GET['page'])&&$_GET['page']>=0)?$_GET['page']:0;
$isLast=($page==($totalPage-1))?true:false;
$hasNoPre=($page==0)?true:false;
$hasNoNext=($page==$totalPage-1)?true:false;
$isFirst=($page==0)?true:false;
$start=$page*$show;
if($recountCount==0){//搜索结果不为0则显示未找到
echo'未找到!';}
else{
$sqlwupin="select*fromershou_wupinwherebclass_name='$bclass_name'andwupin_namelike'%$searchcontent%'ORDERBYwupin_timedesclimit$start,20";
$resultwupin=mysql_query($sqlwupin)ordie(mysql_errno().":".mysql_error()."\n");
while($rswupin=mysql_fetch_object($resultwupin)){
$wupin_name=$rswupin->wupin_name;
$wupin_time=$rswupin->wupin_time;
$date_format=date("m/d",strtotime($wupin_time));
$wid=$rswupin->wid;
echo'
['.$rswupin->class_name.']
'.TrimChinese($wupin_name,"80").'
('.$date_format.')';}}
3.主要窗口如下图:
图11搜索窗口
4.1.3发布信息
实现用户发布二手信息,建立一个简单易操作的信息发布平台。
1.步骤:
(1)输入标题;
(2)选择类别;
(3)输入内容;
(4)选择有效标志。
2.主要代码:
//处理内容提交
if(($_GET["ac"]=="in")&&(isset($_POST["wupin_name"]))){
$wupin_name=$_POST["wupin_name"];
$class_name=$_POST["class_name"];
$wupin_nr=$_POST["wupin_nr"];
$wupin_img=$_POST["wupin_img"];
$user_name=$_POST["user_name"];
$wupin_time=$_POST["wupin_time"];
$wupin_guoqi=$_POST["wupin_guoqi"];
//查询所属大类的id号
$sqlbclass="select*fromershou_classwhereclass_name='$class_name'";
$resultbclass=mysql_query($sqlbclass);
while($infobclass=mysql_fetch_array($resultbclass))
{$class_cid=$infobclass["class_cid"];}
//根据大类的id号 查询出大类名称
$sqlbclass1="select*fromershou_classwherecid='$class_cid'";
$resultbclass1=mysql_query($sqlbclass1);
while($infobclass1=mysql_fetch_array($resultbclass1))
{$bclass_name=$infobclass1["class_name"];}
$sqlup="INSERTINTOershou_wupinSET
bclass_name='$bclass_name',
wupin_name='$wupin_name',
class_name='$class_name',
wupin_nr='$wupin_nr',
user_name='$user_name',
wupin_guoqi='$wupin_guoqi',
wupin_time=NOW()";
if(@mysql_query($sqlup)){
msg("增加成功!","#ff0000");
echo'
';
}
else{
echo"Error:".mysql_error()."";
}
}?>
3.窗口如下图:
图12发布信息窗口
4.1.4密码找回
实现找回密码,大意丢失密码的拥护根据所须填写注册时的问题答案,就
上一篇:PHP+mySQL成绩(论文和程序)
下一篇:试析影响公路路面平整度的因素及应采取的施工措施