php实现购物车功能(下)

接着上篇继续学习: 《php实现购物车的功能(上)》

7、实现一个管理界面

登录界面

由以下代码实现:
7.1 admin.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 主管理菜单
 */
 //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。
 require_once('book_sc_fns.php'); 

 session_start(); 

 if((@$_POST['username']) && (@$_POST['passwd'])) //尝试登陆
 {
 $username = $_POST['username'];
 $passwd = $_POST['passwd']; 

 if(login($username,$passwd))
 {
 $_SESSION['admin_user'] = $username;
 }
 else
 {
 do_html_header("Problem:");
 echo "<p>You could not be logged in.<br />
  You must be logged in to view this page.</p>";
 do_html_URL('login.php','Login');
 do_html_footer();
 exit;
 }
 } 

 do_html_header("Administration"); 

 if(check_admin_user())
 {
 display_admin_menu();
 }
 else
 {
 echo "<p>You are not authorized to enter the administration area.</p>";
 do_html_URL('login.php','Login');
 }
 do_html_footer();
?>

7.2 user_auth_fns.php文件中的函数login()

function login($username,$password) //登录
 {
 $conn = db_connect(); //连接数据库 

 if(!$conn)
 return 0; 

 //检查用户名唯一性
 $query = "select * from admin where username='". $username ."'
  and password = sha1('". $password ."')";
 $result = $conn ->query($query); 

 if(!$result)
 return 0; 

 if($result ->num_rows > 0)
 return 1;
 else
 return 0;
 }

7.3 user_auth_fns.php文件中的函数check_admin_user()

function check_admin_user() //检查是否是管理员
 {
 if(isset($_SESSION['admin_user']))
 return true;
 else
 return false;
 }

管理主界面

由以下代码实现:

7.4 output_fns.php文件中的函数display_admin_menu()

function display_admin_menu() //输出管理员菜单
 {
 ?>
 <br />
 <a href="index.php">Go to main site</a><br />
 <a href="insert_category_form.php">Add a new category</a><br />
 <a href="insert_book_form.php">Add a new book</a><br />
 <a href="change_password_form.php">Change admin password</a><br />
 <?php
 } 

 function display_button($target,$image,$alt) //显示按钮
 {
 echo "<div align= \" center \"><a href=\"". $target ."\">
 <img src=\"images/". $image .".gif\"
 alt=\"". $alt ."\" border = \" 0 \" height = \" 50 \"
 width = \" 135 \" /></a></div>";
 }


目录添加
目录添加成功
目录页中可以看出多了Novel目录

由以下代码实现:
7.5 insert_category_form.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 允许管理员向数据库中添加一个目录的表格
 */
 //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含
 require_once('book_sc_fns.php');
 session_start(); 

 do_html_header();
 if(check_admin_user())
 {
 display_category_form();
 do_html_URL("admin.php","Back to administrtion menu");
 }
 else
 {
 echo "<p>You are not authorized to enter the administation area.</p>";
 }
 do_html_footer();
?>

7.6 insert_category.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 向数据库中插入新目录
 */
 //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含
 require_once('book_sc_fns.php');
 session_start(); 

 do_html_header("Adding a category");
 if(check_admin_user())
 {
 if(filled_out($_POST))
 {
 $catname =$_POST['catname'];
 if(insert_category($catname))
 {
 echo "<p>Category \"". $catname ."\" was added to the database.</p>";
 }
 else
 {
 echo "<p>Category \"". $catname ."\" could not be added to the database.</p>";
 }
 }
 else
 {
 echo "<p>You have not filled out the form. Please try again.</p>";
 }
 do_html_URL("admin.php","Back to administration menu");
 }
 else
 {
 echo "<p>You are not authorised to view this page.</p>";
 }
 do_html_footer();
?>

管理员目录界面

目录编辑界面-可更新,删除

目录更新成功

目录主界面可以看到该目录更改成功

由以下代码实现:
7.7 edit_category_form.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 管理员编辑目录的表单
 */
 //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。
 require_once('book_sc_fns.php');
 session_start(); 

 do_html_header("Edit category");
 if(check_admin_user())
 {
 if($catname = get_category_name($_GET['catid']))
 {
 $catid = $_GET['catid'];
 $cat = compact('catname','catid');
 display_category_form($cat);
 }
 else
 {
 echo "<p>Could not retrieve category details.</p>";
 }
 do_html_URL("admin.php","Back to administration menu");
 }
 else
 {
 echo "<p>You are not authorized to enter the administration area.</p>";
 }
 do_html_footer();
?>

7.8 edit_category.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 更新数据库中的目录
 */
 //require_once语句和require语句完全相同,唯一区别是PHP会检查该文件是否已经被包含过,如果是则不会再次包含。
 require_once('book_sc_fns.php');
 session_start(); 

 do_html_header("Updating category");
 if(check_admin_user())
 {
 if(filled_out($_POST))
 {
 if(update_category($_POST['catid'],$_POST['catname']))
 {
 echo "<p>Category was updated.</p>";
 }
 else
 {
 echo "<p>Category could not be updated.</p>";
 }
 }
 else
 {
 echo "<p>you have not filled out the form. Please try again.</p>";
 }
 do_html_URL("admin.php","Back to administration menu");
 }
 else
 {
 echo "<p>You are not authorised to view this page.</p>";
 }
 do_html_footer();
?>

7.9 admin_fns.php

<?php 

/**
 * @author switch
 * @copyright 2015
 * 管理脚本使用的函数集合
 */
 function display_category_form($category = '') //显示目录表单
 {
 //如果传入存在目录,进入编辑模式
 $edit = is_array($category);
 ?>
 <form method="post" action="<?php echo $edit ? 'edit_category.php' :'insert_category.php'; ?>">
 <table border="0">
  <tr>
  <td>Category Name:</td>
  <td><input type="text" name="catname" size="40" maxlength="40" value="<?php echo $edit ? $category['catname'] : ''; ?>"/></td>
  </tr>
  <tr>
  <td <?php if(!$edit){echo "colspan=2";} ?> align="center">
  <?php
  if($edit)
  {
   echo "<input type=\"hidden\" name=\"catid\" value=\"". $category['catid'] ."\" />";
  }
  ?>
  <input type="submit" value="<?php echo $edit ? 'Update' : 'Add'; ?> Category"/></form>
  </td>
  <?php
  if($edit) //允许删除存在目录
  {
  echo "<td>
   <form method=\"post\" action=\"delete_category.php\">
   <input type=\"hidden\" name=\"catid\" value=\"". $category['catid'] ."\" />
   <input type=\"submit\" value=\"Delete category\" />
   </form></td>";
  }
  ?>
  </tr>
 </table>
 <?php
 } 

 function display_book_form($book = '') //显示图书表单
 {
 //如果传入图书存在,进入编辑模式
 $edit = is_array($book);
 ?> 

 <form method="post" action="<?php echo $edit ? 'edit_book.php' : 'insert_book.php'; ?>">
 <table border="0">
 <tr>
  <td>ISBN:</td>
  <td><input type="text" name="isbn" value="<?php echo $edit ? $book['isbn'] : ''; ?>" /></td>
 </tr>
 <tr>
  <td>Book Title:</td>
  <td><input type="text" name="title" value="<?php echo $edit ? $book['title'] : ''; ?>" /></td>
 </tr>
 <tr>
  <td>Book Author:</td>
  <td><input type="text" name="author" value="<?php echo $edit ? $book['author'] : ''; ?>"/></td>
 </tr>
 <tr>
  <td>Category:</td>
  <td>
  <select name="catid">
  <?php
  $cat_array = get_categories();
  foreach($cat_array as $thiscat)
  {
   echo "<option value=\"". $thiscat['catid'] ."\"";
   if(($edit) && ($thiscat['catid'] == $book['catid']))
   {
   echo " selected";
   }
   echo ">". $thiscat['catname'] ."</option>";
  }
  ?>
  </select>
  </td>
 </tr>
 <tr>
  <td>Price:</td>
  <td><input type="text" name="price" value="<?php echo $edit ? $book['price'] : ''; ?>" /></td>
 </tr>
 <tr>
  <td>Description:</td>
  <td><textarea rows="3" cols="50" name="description"><?php echo $edit ? $book['description'] : ''; ?></textarea></td>
 </tr>
 <tr>
  <td <?php if (!$edit) { echo "colspan=2"; }?> align="center">
  <?php
  if ($edit)
  echo "<input type=\"hidden\" name=\"oldisbn\" value=\"".$book['isbn']."\" />";?>
  <input type="submit" value="<?php echo $edit ? 'Update' : 'Add'; ?> Book" /></form></td>
  <?php
  if ($edit)
  {
  echo "<td>
   <form method=\"post\" action=\"delete_book.php\">
   <input type=\"hidden\" name=\"isbn\" value=\"".$book['isbn']."\" />
   <input type=\"submit\" value=\"Delete book\"/>
  </form></td>"; 

  }
  ?>
  </td>
 </tr>
 </table>
 </form>
 <?php
 } 

 function display_password_form() //显示更改密码表单
 {
 ?>
 <br />
 <form action="change_password.php" method="post">
 <table width="250" cellpadding="2" cellspacing="0" bgcolor="#cccccc">
  <tr>
  <td>Old password:</td>
  <td><input type="password" name="old_passwd" size="16" maxlength="16"/></td>
  </tr>
  <tr>
  <td>New password:</td>
  <td><input type="password" name="new_passwd" size="16" maxlength="16"/></td>
  </tr>
  <tr>
  <td>Repeat new password:</td>
  <td><input type="password" name="new_passwd2" size="16" maxlength="16"/></td>
  </tr>
  <tr>
  <td colspan="2" align="center"><input type="submit" value="Change password"/></td>
  </tr>
 </table>
 </form>
 <br />
 <?php
 } 

 function insert_category($catname) //目录插入
 {
 $conn = db_connect(); //数据库连接 

 $query = "select *
  from categories
  where catname='". $catname ."'";
 $result = $conn ->query($query);
 if((!$result) || ($result ->num_rows != 0))
 return false; 

 $query = "insert into categories values
 ('','". $catname ."')";
 $result = $conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 } 

 function insert_book($isbn,$title,$author,$catid,$price,$description) //图书插入
 {
 $conn = db_connect(); //连接数据库 

 $query = "select * from books
  where isbn='". $isbn ."'";
 $result = $conn ->query($query);
 if((!$result) || ($result ->num_rows != 0))
 return false; 

 $query = "insert into books values
 ('". $isbn ."','". $author ."','". $title ."',
 '". $catid ."','". $price ."','". $description ."')"; 

 $result = $conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 } 

 function update_category($catid,$catname) //更改目录名称
 {
 $conn = db_connect(); //连接数据库 

 $query = "update categories
  set catname='". $catname ."'
  where catid='". $catid ."'";
 $result = @$conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 } 

 function update_book($oldisbn,$isbn,$title,$author,$catid,$price,$description)
 {
 $conn = db_connect(); //连接数据库 

 $query = "update books
  set isbn='". $isbn ."',
  title='". $title ."',
  author='". $author ."',
  catid='". $catid ."',
  price ='". $price ."',
  description='". $description ."'
  where isbn='". $oldisbn ."'";
 $result = @$conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 } 

 function delete_category($catid) //删除目录
 {
 $conn = db_connect(); //连接数据库 

 $query = "select *
  from books
  where catid='". $catid ."'";
 $result = @$conn ->query($query);
 if((!$result) || (@$result ->num_rows > 0)) //如果该目录有图书,无法删除该目录
 return false; 

 $query = "delete from categories
  where catid='". $catid ."'";
 $result = @$conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 } 

 function delete_book($isbn) //删除图书
 {
 $conn = db_connect(); //连接数据库 

 $query = "delete from books
  where isbn='". $isbn ."'";
 $result = @$conn ->query($query);
 if(!$result)
 return false;
 else
 return true;
 }
?>

7.10 目录删除操作,图书添加,更新,删除操作基本与上述操作差不多,这里就不在演示,可以下载代码查看

8、扩展
本项目创建了一个相当简单的PHP购物车系统。我们还可以对它进行许多改进和提高:

  • 在真正的在线商店,可能必须建立一些订单记录和实施系统——在这个系统中,用户无法看到已经预定了的订单。
  • 顾客希望在不必与我们联系的前提下就能检查到他们的订单处理情况。用户应当可以通过一种身份验证方式使之能够查看自己以前的订单,并且也可以将操作与个人情况紧密地结合起来。也更方便我们收集一些用户习惯信息。
  • 图书的图片可以通过FTP之类的服务传输到该网站的图像目录并给它们取一个合适的名字。可以把文件上载到图片插入页,以使该操作方便一些。
  • 可以添加用户登录、个性化设置以及书目推荐、在线评论、会员制度、库存级别检查等。可以添加的功能是非常多的。

以上就是php实现购物车功能的全部代码,希望对大家的学习有所帮助。

源码下载:购物车

(0)

相关推荐

  • php 购物车完整实现代码

    1.商品展示页面 复制代码 代码如下: <table width="255"  border="0" cellspacing="0" cellpadding="0"><tr><td width="130" rowspan="6"><div align="center"><?php        if(trim($i

  • 深入PHP购物车模块功能分析(函数讲解,附源码)

    一,购物车概述购物车是为消费者在网上购物中提供一个临时存储商品的地方.其主要功能包括:添加商品.删除商品.更改商品数量.商品金额小计.商品金额总计和清空购物车:还包括生成订单.订单打印.订单预览.提交订单和取消购物等.购物车的操作流程:首先,登录到网站中浏览商品:然后,购买指定的商品,进入购物车页面中,在该页面可以实现更改商品数量.删除商品.清空购物车.继续购物等:最后,填写收货人信息,生成订单,订单打印.预览,提交订单等操作. 二,热点关键技术1,Smarty模块的安装配置smarty是一个使

  • PHP实现的购物车类实例

    本文实例讲述了PHP实现的购物车类.分享给大家供大家参考.具体分析如下: 该购物车类是基于CodeIgniter的购物车类仿写实现的. 购物车基本功能如下: 1) 将物品加入购物车 2) 从购物车中删除物品 3) 更新购物车物品信息 [+1/-1] 4) 对购物车物品进行统计    1. 总项目    2. 总数量    3. 总金额 5) 对购物单项物品的数量及金额进行统计 6) 清空购物车 1. cart.php文件: <?php /** * * @author quanshuidingd

  • php网上商城购物车设计代码分享

    首先,购物车的数据库设计: 1. id 2. goods_id 商品ID 3. session_id 购物车ID 4. goods_sn 商品编码 5. goods_name 商品名称 6. shop_price 商品商城售价 7. goods_price 商品真实售价(与shop_price的区别在于,当打折的时候,shop_price是打折之前商品的售价,而goods_price是打折之后的) 8. goods_number 数量 9. weight 商品重量 10. goods_attr

  • php购物车实现方法

    本文实例讲述了php购物车实现方法.分享给大家供大家参考.具体分析如下: 这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的,我们不需要数据库,用了txt文本文件来操作用户购物的内容. 增加商品到购物车,代码如下: 复制代码 代码如下: <?php // // add_item.php: //  Add an item to the shopping cart. // session_start(); if (session_is_regist

  • php实现购物车功能(上)

    本文分两篇为大家介绍php实现购物车功能,具有一定的参考价值,相信大家一定喜欢. 1.需求分析 我们需要找到一种将数据库连接到用户的浏览器的方法.用户能够按目录浏览商品. 用户应该能够从商品目录中选取商品以便此后的购买.我们也要能够记录他们选中的物品. 当用户完成购买,要合计他们的订单,获取运送商品细节,并处理付款. 创建一个管理界面,以便管理员在上面添加.编辑图书和目录. 2.解决方案 2.1 用户视图 2.2 管理员视图 2.3 Book-O-Rama中的文件列表 3.实现数据库3.1 创建

  • PHP购物车类Cart.class.php定义与用法示例

    本文实例讲述了PHP购物车类Cart.class.php定义与用法.分享给大家供大家参考,具体如下: 之前的开发人员使用了JS的技术开发了一套前台购物车(删除添加什么的都使用JS),但是浏览器兼容不好, 今天终于出问题了, 有个老外购物了产品, 由于使用了不知名的浏览器, chrome, opera-都有可能, 因此, 我多了一份工作, 重写购物车. 不打算再使用JS, 直接考虑php. 找到了一个购物车的类, 使用起来很方便. Cart.class.php源码: <?php /** * Car

  • php利用cookies实现购物车的方法

    本文实例讲述了php利用cookies实现购物车的方法.分享给大家供大家参考.具体分析如下: php购物车是在电子商务网站会用到的,一种像超市购物车一样的,选好商品了,先放到自己的购物车里面等好了再到柜台结算,本款php购物车完全按照这个原理来实例的,感兴趣的朋友可以来看看,该实例利用了cookie来实现,代码如下: 复制代码 代码如下: <?php /**  * 购物车类 cookies 保存,保存周期为1天 注意:浏览器必须支持cookie才能够使用  */ class cartapi {

  • php 购物车的例子

    //购物车session的产生代码 if(! $session && ! $scid) { /* session用来区别每一个购物车,相当于每个车的身份证号: scid只用来标识一个购物车id号,可以看做是每个车的名字: 当该购物车的id和session值两者都不存在时,就产生一个新购物车 */ $session = md5(uniqid(rand())); /* 产生一个唯一的购物车session号 rand()先产生个随机数,uniqid()再在该随机数的基础上产生一个独一无二的字符串

  • php购物车实现代码

    ShopCar.php 复制代码 代码如下: <?php class Shopcar { //商品列表 public $productList=array(); /** * * @param unknown_type $product 传进来的商品 * @return true 购物车里面没有该商品 */ public function checkProduct($product) { for($i=0;$i<count($this->productList);$i++ ) { if($

  • PHP实现的比较完善的购物车类

    本文实例讲述了PHP实现的比较完善的购物车类.分享给大家供大家参考.具体实现方法如下: 前不久做到一个项目需要用到购物车,考虑到可能经常用到,所以把它封装成一个类,以便以后调用,感兴趣的读者可以简单的把这个类稍微修改一下就可以用在自己的程序里了. 复制代码 代码如下: <?php /*****************************************************************************/ /*                           

  • php实现仿写CodeIgniter的购物车类

    本文实例讲述了php实现仿写CodeIgniter的购物车类.分享给大家供大家参考.具体如下: 这里仿写CodeIgniter的购物车类 购物车基本功能: 1) 将物品加入购物车 2) 从购物车中删除物品 3) 更新购物车物品信息 [+1/-1] 4) 对购物车物品进行统计    1. 总项目    2. 总数量    3. 总金额 5) 对购物单项物品的数量及金额进行统计 6) 清空购物车 cart.php文件如下:  <?php /** * * @author quanshuidingda

随机推荐