
联系方式: 微信:biyebang QQ: 629001810
根据一般电子商务系统功能分析,将系统分为管理员、用户两大模块。系统管理员模块包括:系统配置管理、会员信息管理、网站新闻管理、物品信息管理、管理员管理、登录日志管理。用户模块包括:安全登录、找回密码、查询信息、发布信息、会员注册、物品类别、物品信息管理、会员信息修改。刚进入网站的非会员能够在此网站浏览和搜索信息,不仅能浏览二手信息还能浏览到热门信息。经过注册成为会员便能发布信息。此系统还考虑到用户利用穷举法破解密码,专门设置了用户和管理员登录日志,以便及时了解和防范。
根据系统功能需求建立的模块关系图如下图:
本实例根据上面的模块关系图规划出的实体有管理员、二手信息机及新闻、用户、会员实体、各实体的E-R图及其关系描述如下(带下划线的为主键):
超级管理远实体E-R图同管理员实体E-R图类似,无权限属性(省略)。
各实体的关系E-R图描述如下:
表1 数据库表
| 
             序号  | 
            
             数据库表  | 
            
             数据库存储内容  | 
        
| 
             1  | 
            
             ershou_adminstage  | 
            
             存储管理员和会员的登录日志  | 
        
| 
             2  | 
            
             ershou_class  | 
            
             存储二手信息的类别信息  | 
        
| 
             3  | 
            
             ershou_pinglun  | 
            
             存储会员对物品信息的评论  | 
        
| 
             4  | 
            
             ershou_news  | 
            
             存储新闻  | 
        
| 
             5  | 
            
             ershou_user  | 
            
             存储会员的相关信息  | 
        
| 
             6  | 
            
             ershou_wupin  | 
            
             存储以发布的物品信息  | 
        
| 
             7  | 
            
             ershou_manager  | 
            
             存储管理员的信息  | 
        
数据表关系图如下:
数据表结构的详细设计
表2 用户资料表(ershou_user)
| 
             序号  | 
            
             字段名  | 
            
             字段类别  | 
            
             说明  | 
            
             备注  | 
        
| 
             1  | 
            
             user_name  | 
            
             varchar(20)  | 
            
             用户的账号名称  | 
            
             主键  | 
        
| 
             2  | 
            
             user _pass  | 
            
             varchar(20)  | 
            
             用户的帐号密码  | 
            |
| 
             3  | 
            
             user _question  | 
            
             varchar(50)  | 
            
             找回密码提问  | 
            |
| 
             4  | 
            
             user _angser  | 
            
             varchar(50)  | 
            
             找回密码答案  | 
            |
| 
             5  | 
            
             user _mphone  | 
            
             varchar(12)  | 
            
             移动电话  | 
            |
| 
             6  | 
            
             user _phone  | 
            
             varchar(12)  | 
            
             座机  | 
            |
| 
             7  | 
            
             user _school  | 
            
             varchar(60)  | 
            
             所在学校  | 
            |
| 
             8  | 
            
             user _email  | 
            
             Varchar(80)  | 
            
             电子邮箱  | 
            |
| 
             9  | 
            
             user _date  | 
            
             datetime  | 
            
             注册时间  | 
            |
| 
             10  | 
            
             user _qq  | 
            
             Int  | 
            
             QQ号  | 
            |
| 
             11  | 
            
             user _kt  | 
            
             Int  | 
            
             标志  | 
            
             默认为0  | 
        
表3 类别信息表(ershou_class)
| 
             序号  | 
            
             字段名  | 
            
             字段类别  | 
            
             说明  | 
            
             备注  | 
        
| 
             1  | 
            
             class_name  | 
            
             varchar(20)  | 
            
             类别名称  | 
            
             主键  | 
        
| 
             2  | 
            
             class_order  | 
            
             int  | 
            
             大类顺序标记小类为默认的0  | 
            
             默认值为0  | 
        
| 
             3  | 
            
             class_cid  | 
            
             int  | 
            
             小类顺序标记大类为默认的0  | 
            
             默认值为0  | 
        
表4 用户与管理员登录日志信息表(ershou_ adminstage)
| 
             序号  | 
            
             字段名  | 
            
             字段类别  | 
            
             说明  | 
            
             备注  | 
        
| 
             1  | 
            
             manager_name  | 
            
             varchar(20)  | 
            
             登录名  | 
            
             主键  | 
        
| 
             2  | 
            
             manager_action  | 
            
             varchar(50)  | 
            
             登录动作  | 
            |
| 
             3  | 
            
             manager_ip  | 
            
             varchar(30)  | 
            
             登录ip  | 
            |
| 
             4  | 
            
             manager_time  | 
            
             datetime  | 
            
             登录时间  | 
            |
| 
             5  | 
            
             manager_state  | 
            
             int  | 
            
             登录状态  | 
            
             默认为0  | 
        
| 
             6  | 
            
             manager_if  | 
            
             Int  | 
            
             判断为管理员还是用户  | 
            
             默认为0  | 
        
表5 评论表(ershou_pinglun)
| 
             序号  | 
            
             字段名  | 
            
             字段类别  | 
            
             说明  | 
            
             备注  | 
        
| 
             1  | 
            
             pid  | 
            
             int  | 
            
             Id  | 
            
             主键  | 
        
| 
             2  | 
            
             pinglun_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  | 
        
MD5是在Web应用程序中最常用的密码加密算法。由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文。
所谓MD5,即"Message-DigestAlgorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一种保密的格式,关键之处在于——这种"压缩"是不可逆的。
在Web应用程序中使用MD5加密文本密码的初衷,就是为了防止数据库中保存的密码不幸泄露后被直接获得。但攻击者不但拥有数据量巨大的密码字典,而且建立了很多MD5原文/密文对照数据库,能快速地找到常用密码的MD5密文,是破译MD5密文的高效途径。然而,MD5密文数据库所使用的是最常规的MD5加密算法:原文-->MD5-->密文。因此,使用字符串次序干涉MD5算法,使现成的MD5密文数据库无所作为。此函数是把MD5运算后的密文字符串的顺序调转后,再进行一次MD5运算。函数代码如下:
function md5_5($psw)
{ //得到数据的密文
$ psw = md5($psw);
//再把密文字符串的字符顺序调转
$ psw = strrev($psw);
//最后再进行一次MD5运算并返回
return md5($psw);
}
系统实现
归纳起来,系统的功能大约有以下几点:用户注册,信息查询,发布信息,找回密码等。
为了实现不同地域的学生通过网络、不择时间地自主填写并上传自己的基本档案(不合要求的档案可以由管理员及时清除),需要录入基本的个人信息。
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="select count(*) count fromershou_user where user_name='$user_name'";
$result=mysql_query($query);
while($info=mysql_fetch_array($result))
{ $count=$info["count"]; }
if($count==0){//不存在才执行注册
$sqladd = "INSERTINTO ershou_user SET user_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 '<table width="100%"border="0" cellPadding="0" cellSpacing="0">
<tr>
<tdheight="300"><imgsrc="images/warning.gif" border="0" /> 该会员已存在 <ahref="javascript:history.back()">返回</a>重新填写
</td>
</tr>
</table>';}
}
3.主要窗口如下图:
搜索信息
为了实现快速浏览网站信息,各用户可以根据所须信息类别并填写查询关键字,很快的找出需要的信息。
1.步骤:
(1)填写信息类别;
(2)修改或删除信息类别;
(3)浏览信息类别。
2.主要代码:
$sql ="selectcount(*) count from ershou_wupin where bclass_name='$bclass_name' andwupin_name like '%$searchcontent%'";
$result=mysql_query($sql) or die(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'<tr><td height="25"align="center">未找到!</td></tr>';}
else{
$sqlwupin="select * from ershou_wupinwhere bclass_name='$bclass_name' and wupin_name like '%$searchcontent%' ORDERBY wupin_time desc limit $start,20";
$resultwupin = mysql_query($sqlwupin) or die(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 '<tr><tdheight="25">  
<font color="#333333">['.$rswupin->class_name.']</font>
 <ahref="wupin.php?wid='.$wid.'" target="_blank">
<fontcolor="#333333">'.TrimChinese($wupin_name,"80").'</font></a>
 <font color="#666666"> ('.$date_format.')</font></td></tr>';}}
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* from ershou_class whereclass_name='$class_name'";
$resultbclass=mysql_query($sqlbclass);
while($infobclass=mysql_fetch_array($resultbclass))
{$class_cid=$infobclass["class_cid"];}
//根据大类的id号 查询出大类名称
$sqlbclass1="select * fromershou_class wherecid='$class_cid'";
$resultbclass1=mysql_query($sqlbclass1);
while($infobclass1=mysql_fetch_array($resultbclass1))
{$bclass_name=$infobclass1["class_name"];}
$sqlup = "INSERTINTO ershou_wupin SET
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 '<meta http-equiv ="Refresh" content ="1 ; URL=wupin_manager.php">';
}
else {
echo"<p>Error:".mysql_error()."</p>";
}
}?>
3.窗口如下图:
密码找回
实现找回密码,大意丢失密码的拥护根据所须填写注册时的问题答案,就能更改密码。
1.步骤:
(1)填写用户名;
(2)填写答案跟新密码;
(3)提交密码。
2.主要代码如下:
<?
$user_name1=$_POST["user_name"];//前页隐藏表单提交过来的的当前用户名
$user_angser2=$_POST["user_angser"];
$user_name1=trim($user_name1);
$user_angser2=trim($user_angser2);
$user_angser1=md5_5($user_angser2);//填写的答案进行加密 以去和数据库的值对比
$user_pass2=$_POST["user_pass1"];//读取新密码
$user_pass2=trim($user_pass2);
$user_pass1=md5_5($user_pass2);//加密
$sql="select *from ershou_user WHERE user_name='$user_name1'";
$result = mysql_query($sql) or die(mysql_errno().": ".mysql_error()."\n");
$rs=mysql_fetch_object($result);
$user_angser=$rs->user_angser;
if($user_angser!=$user_angser1){//数据库答案与输入的不相同就提示
echo '<trbgcolor="#f3f3f3">
<td height="50"align="center">答案错误!请<a href="user_repw.php"><fontcolor="#ff0000">返回</font></a></td></tr>';}
//输入的答案正确和输入了新密码就提交修改的用户密码
elseif($user_angser1==$user_angser)
{
$sqlup="UPDATE ershou_user SET user_pass='$user_pass1' whereuser_name='$user_name1'";
if(@mysql_query($sqlup)) {
echo'<img src="images/success.gif" border="0" />';
msg("修改成功,返回登录","#ff0000");
echo '<metahttp-equiv ="Refresh" content = "1 ; URL=user_login.php">';
}
else {
echo"<p>Error:".mysql_error()."</p>";
}
}
?>
3.主要窗口如下:
数据库连接代码
<?
######MySQL数据库信息######
$DBhost ="localhost"; //主机名
$DBuser ="root"; //用户名
$DBpass =""; //密码
$DBname ="ershou"; //数据库名
mysql_connect($DBhost,$DBuser,$DBpass)or die("无法连接到数据库!");
mysql_query("SETNAMES GBK");
mysql_select_db($DBname);
?>
1.首页:
网站首页是用户进入系统的第一个界面,因此,简洁、友好、清晰醒目是设计时要考虑的风格。样式如图所示:
2.管理员管理主界面:
管理员输入正确地用户名和口令后,就可进入管理主界面。管理主界面是管理员维护网站使用的界面,因此要求简单明了,容易操作。样式如下图:
源文件

版权所有© 帮我毕业网 并保留所有权利