论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

基于php的产品报价系统的设计与开发(论文+程序)

5.2   功能总体说明5.2.1 系统流程图 内容来自论文无忧网 www.paper51.com

系统整体主要流程图如图3。 内容来自www.paper51.com

paper51.com

图3 系统整体主要流程图 http://www.paper51.com

5.2.2 目录结构说明

http://www.paper51.com

本系统程序代码包含11个子目录,主要目录描述说明为: copyright paper51.com

admin : 管理后台程序目录,包括后台程序、数据库备份目录、后台管理子模块程序目录。

copyright paper51.com

htmlarea : htmlarea在线编辑器的全部程序,包括编辑器的js文件、编辑器图标以及模版程序。

内容来自论文无忧网 www.paper51.com

images : 该目录主要为系统中使用到的图片、图标,包括jpg、gif、ico等格式。

内容来自www.paper51.com

includes : 系统的重要函数,包括全局配置文件,还有调用频繁的代码段。 copyright paper51.com

modules : 存放系统中一些小的功能模块的代码。比如站内新闻订阅。 copyright paper51.com

osdata : 数据库备份和恢复的设置目录,主要存放系统备份的数据库,可以从这里面将数据库导入到系统中去。 http://www.paper51.com

templates : 系统前台模版文件,为html格式,通过PHP文件的包含而使用。 paper51.com

5.3   各功能模块的实现5.3.1 数据库的连接

内容来自论文无忧网 www.paper51.com

系统中对数据库的操作是以类的形式表现的,将对数据库操作的函数封装到类dbstuff中,包括数据库的连接和查询以及从查询结果从取数据。然后建立一个新的对象db,在整个系统中直接使用对象操作数据库。在类dbstuff中,对数据库连接的代码片段是: 内容来自www.paper51.com

function connect($dbhost, $dbuser, $dbpw, $dbname,$pconnect = 0){

copyright paper51.com

  if($pconnect){ http://www.paper51.com

   if (!@MySQL_pconnect($dbhost, $dbuser, $dbpw)){ copyright paper51.com

      $this->halt('连接数据库服务器失败');

内容来自www.paper51.com

   } paper51.com

  }

paper51.com

  else{ 内容来自www.paper51.com

   if (!@MySQL_connect($dbhost, $dbuser, $dbpw)){

http://www.paper51.com

      $this->halt('连接数据库服务器失败'); http://www.paper51.com

   }

paper51.com

  }

paper51.com

  MySQL_select_db($dbname);//选择数据库 copyright paper51.com

}

内容来自www.paper51.com

function select_db($dbname){ //将选择数据库以函数的形式表示 paper51.com

  return MySQL_select_db($dbname);

paper51.com

}

内容来自论文无忧网 www.paper51.com

对数据库操作的类封装在includes目录中的db_MySQL.PHP文件中,然后在application_top.PHP文件中建立对象,然后在使用到数据库操作的每个页面将application_top.PHP包含进去。在application_top.PHP建立对象的操作代码为:

paper51.com

$db = new dbstuff; //建立对象 copyright paper51.com

$db->connect(DB_SERVER,DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE, 内容来自论文无忧网 www.paper51.com

 USE_PCONNECT); //使用对象来操作数据库连接 http://www.paper51.com

$db->select_db(DB_DATABASE); 内容来自论文无忧网 www.paper51.com

5.3.2 用户注册与审核模块

copyright paper51.com

作为一个产品报价系统,首先它是一个在线购物系统,因此为了建立一个良好的购物环境,保证系统的安全和用户的信息,新用户的审核是一个重要的环节。新用户在前台首页或者系统任何一个需要登录才能操作的功能页,都会自动的跳转到登录注册页面,注册页面如图4所示。 内容来自www.paper51.com

内容来自www.paper51.com

图4 用户注册页面

copyright paper51.com

点击用户注册链接,进入如图4的页面,填写真实的个人信息,在确认无误之后提交,系统将对提交信息进行初步的过滤,如果无误,将会提示注册成功。此时用户可以登录系统,使用搜索功能,发布产品评论,修改个人资料,但是不能订购产品,在等待管理员审核通过之后才具有购买产品的权限,成为正式会员。审核功能如图15。 paper51.com

在注册页面,标注星号的为必须填写的字段,在程序中对此类字段进行是否为空的判断。如果均不为空则插入数据表中,否则返回信息提交页面。 内容来自www.paper51.com

在这个过程中,重要的就是提取用户提交的信息,这是对信息进行判断和写入数据库的重要步骤,该过程使用到了位于includes目录中的global.PHP文件中自定义函数tep_db_prepare_input()。该函数的实现为:

paper51.com

function tep_db_prepare_input($string){

http://www.paper51.com

  if(is_string($string)){ paper51.com

   return trim(tep_sanitize_string(stripslashes($string))); //字符串替换函数

paper51.com

  }

内容来自www.paper51.com

  elseif(is_array($string)){ http://www.paper51.com

   reset($string); 内容来自www.paper51.com

   while (list($key, $value) = each($string)){

copyright paper51.com

      $string[$key] =tep_db_prepare_input($value); 内容来自论文无忧网 www.paper51.com

   } copyright paper51.com

   return $string; paper51.com

  }

内容来自论文无忧网 www.paper51.com

  else{ 内容来自www.paper51.com

   return $string;

http://www.paper51.com

  } copyright paper51.com

}

http://www.paper51.com

审核模块,由管理员在后台对所要审核的会员所在的群组进行更改,管理员能全面的查看到会员的全部资料,确认之后将用户由待审核组更改为正式会员组即实现了审核功能。 copyright paper51.com

5.3.3 用户登录模块的实现 copyright paper51.com

注册用户通过前台页面的登录窗口(如图5),进入系统,以进行相关操作。登录主要使用用户邮箱地址和注册密码,如果与数据库匹配成功则登录成功。用户遗忘密码时,通过找回密码功能来获得一个新的密码,这使用到了两个操作: paper51.com

首先就是通过用户提供的邮箱地址进行数据库的操作,如果邮箱存在就随机产生一个密码,并将加密后的新密码写入到数据库中。 paper51.com

paper51.com

图5 用户登录页面

paper51.com

产生新密码的实现过程为:

paper51.com

$email_address =tep_db_prepare_input($HTTP_POST_VARS['email_address']); //读取用户提交信息

内容来自www.paper51.com

$check_customer_query = $db->query("selectcustomers_firstname, customers_password, customers_id from $table_customerswhere customers_email_address ='".safe_input($email_address)."'"); //数据库查询 内容来自www.paper51.com

if($db->num_rows($check_customer_query)){ //邮箱地址存在,分配新密码 http://www.paper51.com

 $check_customer = $db->fetch_array($check_customer_query);

内容来自论文无忧网 www.paper51.com

 $new_password = tep_create_random_value(ENTRY_PASSWORD_MIN_LENGTH); //随机产生密码 paper51.com

$crypted_password = md5($new_password); //对随机产生的密码加密$db->query("update $table_customers setcustomers_password =

http://www.paper51.com

'".safe_input($crypted_password)."' where customers_id = '" . (int)$check_customer['customers_id'] ."'");//更新用户信息

内容来自www.paper51.com

其次,系统需要自动的发送邮件到用户信箱,将新密码以邮件方式发送给用户。发送给用户的密码是没有加密前的随机密码。发送邮件之前,系统需要配置好邮件服务功能。实现过程使用到了函数tep_mail(),该函数的实现代码为:

copyright paper51.com

function tep_mail($to_name,$to_email_address, $email_subject, $email_text,

paper51.com

 $from_email_name, $from_email_address){

内容来自论文无忧网 www.paper51.com

 if (SEND_EMAILS != 'true')

内容来自www.paper51.com

    return false;

内容来自论文无忧网 www.paper51.com

 require_once('includes/classes/mime.PHP'); http://www.paper51.com

 require_once('includes/classes/email.PHP'); 内容来自论文无忧网 www.paper51.com

 $message = new email(array('X-Mailer: Mailer')); 内容来自论文无忧网 www.paper51.com

 $text = strip_tags($email_text); copyright paper51.com

 if (EMAIL_USE_HTML == 'true'){

内容来自www.paper51.com

    $message->add_html($email_text,$text);

内容来自www.paper51.com

 }

内容来自www.paper51.com

 else{ http://www.paper51.com

   $message->add_text($text);

paper51.com

 }

内容来自论文无忧网 www.paper51.com

 $message->build_message();

http://www.paper51.com

 $message->send($to_name, $to_email_address, $from_email_name,

内容来自www.paper51.com

    $from_email_address,$email_subject); //使用到了PHP封装的函数send()

内容来自www.paper51.com

}

paper51.com

5.3.4 商品搜索模块的实现 内容来自论文无忧网 www.paper51.com

产品搜索主要是通过对数据字段的查询实现的。如图6所示,用户通过输入产品名称的关键字,目前可以实现的是使用产品名称关键字、产品分类(包含子分类)、产品制造商与产品的价格范围和上架的日期范围进行组合式的搜索服务。 内容来自论文无忧网 www.paper51.com

搜索结果将产品以列表的形式调用出来,并且显示各个产品的参数,以便于产品之间的比较,搜索结果显示如图7。在实现该模块中,对数据库的查询、产品的显示形式与分页是重点技术点。

copyright paper51.com

paper51.com

图6  产品搜索页面 内容来自www.paper51.com

其中搜索过程对数据库的操作较为复杂,需要同时对不同数量的关键字进行处理。搜索处理用到的重要函数有以下2个:

copyright paper51.com

function tep_get_all_get_params() 用于获取用户搜索输入的所有参数

内容来自www.paper51.com

function tep_parse_search_string() 用户对所有参数的处理。 copyright paper51.com

paper51.com

------分隔线----------------------------
联系方式