当前位置:首页 > 免费毕业设计

免费毕设之PHP校园二手信息网站的设计与开发(源代码+论文)

免费毕设之PHP校园二手信息网站的设计与开发(源代码+论文)

  • 网站价格: 1
  • 特殊技术: 免费毕设
  • 作品类型: 免费毕设
  • 售后服务:

联系方式: 微信:biyebang QQ: 629001810

作品详情

目录

 

系统设计

1.1 系统功能需求分析

根据一般电子商务系统功能分析,将系统分为管理员、用户两大模块。系统管理员模块包括:系统配置管理、会员信息管理、网站新闻管理、物品信息管理、管理员管理、登录日志管理。用户模块包括:安全登录、找回密码、查询信息、发布信息、会员注册、物品类别、物品信息管理、会员信息修改。刚进入网站的非会员能够在此网站浏览和搜索信息,不仅能浏览二手信息还能浏览到热门信息。经过注册成为会员便能发布信息。此系统还考虑到用户利用穷举法破解密码,专门设置了用户和管理员登录日志,以便及时了解和防范。

1.2 系统模块关系图

根据系统功能需求建立的模块关系图如下图:

 

 

1.3  系统E-R图

本实例根据上面的模块关系图规划出的实体有管理员、二手信息机及新闻、用户、会员实体、各实体的E-R图及其关系描述如下(带下划线的为主键)


超级管理远实体E-R图同管理员实体E-R图类似,无权限属性(省略)

各实体的关系E-R图描述如下:

 

 

 

1.4 数据库设计

1.4.1   数据库表之间的关系

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

1.5  系统安全

MD5是在Web应用程序中最常用的密码加密算法。由于MD5是不可逆的,因而经过MD5计算得到后的密文,不能通过逆向算法得到原文。

所谓MD5,即"Message-DigestAlgorithm 5(信息-摘要算法)",它由MD2MD3MD4发展而来的一种单向函数算法(也就是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.步骤:

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" />&nbsp;该会员已存在  <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">&nbsp;&nbsp;
<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  创建界面

1.首页:

网站首页是用户进入系统的第一个界面,因此,简洁、友好、清晰醒目是设计时要考虑的风格。样式如图所示:

2.管理员管理主界面:

管理员输入正确地用户名和口令后,就可进入管理主界面。管理主界面是管理员维护网站使用的界面,因此要求简单明了,容易操作。样式如下图:

 

 

源文件


帮我毕业网微信

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

QQ 1370405256 微信 biyebang

QQ:629001810微信:biyebang

收缩