重蔚自留地PHP学习第46天——二次开发ECShop。

上一篇文章学了通过pdo来连接数据https://www.cwhello.com/263880.html

下面些总结。

PDO

    PDO:连接数据库,发送SQL

        exec:发送SQL语句,针对增删改,没有结果集返回

        query:发送SQL语句,针对查询,有结果集返回

        prepare:发送SQL语句,得到一个预处理

        query和prepare方法执行结束后,返回一个PDOStatement对象

    PDOStatement:处理mysql服务器返回的数据

        fetch:从结果集中返回一行记录,第一个参数用来指定返回的模式(要使用常量)

        rowCount,columnCount:结果集中的行的数量和列的数量

        execute:执行预处理

        bindParam,bindValue:将预处理中的变量进行值绑定

        bindColumn:将结果集中取得的一条记录中的某个字段绑定到具体的变量中

    PDOException:异常处理,必须保证错误模式为异常模式

 

实例化对象的过程

重蔚自留地PHP学习第46天——二次开发ECShop。

今天新学的知识是二次开发ecshop。

安装Ecshop

  1. 下载Ecshop

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 解压

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 将upload文件夹放到项目目录下,然后重命名为ecshop

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 傻瓜式安装,连接访问到ecshop的根目录下的index.php或者进入install目录访问index.php,进入安装界面

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 同意协议

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 环境支持

开启GD库,php.ini中有一个gd库的扩展

重蔚自留地PHP学习第46天——二次开发ECShop。

重启Apache

刷新环境监测界面

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 配置系统:数据库信息和用户信息

数据库账号

重蔚自留地PHP学习第46天——二次开发ECShop。

管理员账号

重蔚自留地PHP学习第46天——二次开发ECShop。

勾选安装测试数据

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 安装执行

登录后台

  1. 要对错误进行处理:主要是一些严格的错误,是因为当前PHP的版本与ecshop开发时所应用的PHP版本不一致造成
  2. 修改后台的错误文件:init.php初始化文件

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 修改前台的错误文件:init.php初始化文件

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 清理缓存:ecshop为了提高响应效率会做一些缓存,在修改了之后需要删除之前访问所遗留的缓存和编译文件。

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 进入系统后台

重蔚自留地PHP学习第46天——二次开发ECShop。

 

SHOP项目

模拟ecshop的结构和业务逻辑实现一些系统功能

项目分前台和后台,前台是给用户查看数据的功能,后台是管理员用来管理数据的功能。

后台功能

    权限验证:登录,表单,会话技术(session,cookie),验证码等

    商品分类:无限级分类

    商品管理:文件上传,图片的处理(缩略图,水印),回收站思想

前台功能

    注册登录

    购物车,订单

 

如何做项目?

项目设计

    架构设计

  1. 使用什么语言进行开发?PHP?asp?JAVA?
  2. 开发模式:源码,框架开发,二次开发
    1. 源码:全部代码自己敲
    2. 框架开发:TP,YII,CI
    3. 二次开发:在别人开发好的基础上,做修改

当前在国内比较流行的开发模式:框架开发和二次开发,原因是效率;一般对安全性要求高的项目,基本都是使用源码开发

    代码设计

  1. 目录结构设计
  2. 代码设计:
    1. 面向过程PK面向对象
    2. 功能如何划分
    3. 代码规范

 

shop项目采用PHP源码开发,采用MVC架构设计,仿照Ecshop的文件结构,采用面向过程和面向对象混搭模式

数据库设计

    数据库选择

  1. 什么类型数据库?关系型or非关系型?
  2. 服务器选择
  3. 存储引擎的选择
  4. 数据库结构

 

shop项目采用mysql数据库,采用默认存储引擎InnoDB,每一类(实体)数据对应一张表

 

Ecshop目录结构

前台部分

重蔚自留地PHP学习第46天——二次开发ECShop。

 

后台部分

重蔚自留地PHP学习第46天——二次开发ECShop。

 

shop目录结构

  1. 项目根目录

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 对应项目目录
    1. 前台目录

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 后台目录

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 配置虚拟主机,访问shop目录

重蔚自留地PHP学习第46天——二次开发ECShop。

重启Apache

修改hosts文件

重蔚自留地PHP学习第46天——二次开发ECShop。

 

访问

重蔚自留地PHP学习第46天——二次开发ECShop。

 

后台权限验证

所有跟权限相关的请求,都请求同一个文件:privilege.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

权限相关:登录,退出,验证码

 

登录功能

  1. 加载登陆界面
    1. 将login.php模板文件放到/admin/templates目录下
    2. 在/admin/privilege.php里面加载login.php文件

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 从Ecshop里面把后台对应的js,styles和images全部拿过来放到/admin目录下

重蔚自留地PHP学习第46天——二次开发ECShop。

  1. 修改login.php模板里面的img标签,找到对应的图片login.gif =è login.png

重蔚自留地PHP学习第46天——二次开发ECShop。

 

如何进行用户登录?

要保证有一个可以用的账号。第一个用户往往是通过在数据库后台进行数据插入得到(原因是因为大部分后台没有注册的功能)。

 

搭建项目数据库

数据库名字:shop

后台用户表:sh_admin

重蔚自留地PHP学习第46天——二次开发ECShop。

 

后台公共代码

新建一个init.php文件,用来保存后台的公共代码,文件放到/admin/includes/

重蔚自留地PHP学习第46天——二次开发ECShop。

 

在需要被访问(用户)的脚本内加载项目初始化文件/admin/privilege.php

 

 

登录功能

区分用户的请求,到底是请求登录界面还是请求验证用户信息?

通过给用户的请求设定一个标志,用act(action)来表示,如果用户没有请求动作,那么默认指定一个动作给用户。

重蔚自留地PHP学习第46天——二次开发ECShop。

 

对动作进行判断,然后根据不同的动作进行不同的操作

重蔚自留地PHP学习第46天——二次开发ECShop。

 

有很多地方会要用到跳转,使用html跳转,做一个跳转界面(模板),放到/admin/templates/admin_redirect.html

重蔚自留地PHP学习第46天——二次开发ECShop。

 

在需要跳转的时候将跳转模板加载

重蔚自留地PHP学习第46天——二次开发ECShop。

 

但是每次需要跳转的时候都需要写这么三个参数非常麻烦,所以把跳转封装一个函数。/admin/includes/functions.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

将公共函数加载到init.php文件/admin/includes/init.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

在后台需要跳转的地方直接使用admin_redirect函数

重蔚自留地PHP学习第46天——二次开发ECShop。

 

没一张表对应每一类数据的操作,针对没一张表抽象出一个类,表名跟类名一样,类名不需要表前缀。每一个类,凡是要操作数据库的都继承DB类。

 

因为前台和后台都需要操作数据,类都放到前台的includes下面/includes

重蔚自留地PHP学习第46天——二次开发ECShop。

 

再在该目录下创建一个Admin.class.php文件

重蔚自留地PHP学习第46天——二次开发ECShop。

注意:因为Admin类继承自DB类,所以也继承了对应的方法,不再需要构造方法去实例化DB类的对象。

 

使用Admin类的验证用户名和密码的功能/admin/privilege.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

去Admin类里补充checkByUsernameAndPassword方法

重蔚自留地PHP学习第46天——二次开发ECShop。

 

增加自动加载方法,/admin/includes/functions.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

判断登录结果:/admin/privilege.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

制作系统配置文件,配置数据库信息/config/config.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

在init.php中加载配置文件/admin/includes/init.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

修改DB类/includes/DB.class.php

重蔚自留地PHP学习第46天——二次开发ECShop。

 

用户访问privilege.php的执行流程图,见画图

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/263931.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2023年5月22日 05:07
下一篇 2023年5月22日

相关推荐

  • 从事php工作,你知道要掌握哪些技能吗?

    从事PHP工作,大家知道在不同的阶段需要掌握哪些技能吗啊?下面简单的介绍一下: 一PHP初级开发工程师 1. 走进PHP的世界 PHP介绍、PHP版本发展历史、PHP薪资水平和职业发展、WEB开发中基础概念介绍、PHP开发环境搭…

    2017年12月20日
    0179
  • PHP图像压缩处理技术教程

    一、图像压缩介绍 我们之前学习过文件的上传(上传一个头像),但是上传的文件不能直接使用的,因为本地的文件可能会很大,在前端页面显示的时候,就会加载很长时间,所以我们通常会先压缩再使用 通常压缩的时候,…

    2018年9月11日 PHP案例操作
    0227
  • php实现签到功能的方法实例分析(附代码)

    今天来学习下php实现签到功能的方法。代码我也分享给大家供大家参考,具体如下: 首先我在数据库里建了两张表,一个是用户的积分表,一个是签到状态表,分来用来记录用户的积分数和先到状态 在用户签到状态表中我们有…

    2018年3月10日
    0236
  • php虚拟主机配置教程

    端口监听: 端口:就是一个数字,目的是让一台电脑(对外只有一个IP)能够对外提供多项服务(多种功能)。 行业默认有如下常见的服务和端口对应: web服务: 80 ftp服务: 21 邮件收取服务:110 邮件发送服务:25 m…

    2020年11月13日 PHP自学教程
    0390
  • PHP 新手入门之数据类型

    标量数据类型:是数据结构中最基本单元,只能储存一个数据 布尔型:boolean 字符串型:string 浮点型: float 整型 : integer 两种复合类型: array() 数组 object 对象 俩种特殊类型 resource 资源型 null 空 判…

    2018年12月16日
    0267
  • GOTO语句

    goto语句就是在页面中的不同位置进行跳转. 语法:  Goto 表示名;                        可以写代码;              表示名: 案例:

    2018年4月1日
    0210
  • PHP回调函数以及匿名函数用法与概念详解(基础篇)

    1、回调函数 PHP的回调函数其实和C、Java等语言的回调函数的作用是一模一样的,都是在主线程执行的过程中,突然跳去执行设置的回调函数;回调函数执行完毕之后,再回到主线程处理接下来的流程而在php调用回调函数,…

    2018年8月30日
    0295
  • php位运算符的说明

    说明:作为了解的东西,就是对位进行操作,位说的是二进制的每个“位”,二进制共有32位。 位:由1和0构成 &:按位与 1 & 1 =>>>1 1 & 0 =>>>0 0 & 1 =>>>0 0 & 0 =&…

    2017年12月8日
    0226

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息