重蔚自留地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)
上一篇 02分钟前
下一篇 02分钟前

相关推荐

  • php自学教程—php运算符的错误抑制符

    错误抑制符 说明:@,目的屏蔽一些不重要错误。 作用:所有的网站不可能没有bug的时候上线。 执行运算符 说明:``,把数据用反引号括起来后,就是执行了。 递增递减运算符 说明:自己加一或自己减一,符号:++ --...

    34分钟前 PHP自学教程
    0228
  • return语句的使用

    说明:return可以在函数内使用,也可以在页面中它位置使用。 如果是在函数内使用,作用为停止当前函数的运行,还可以返回函数内的值   如果是在页面中使用,作用为停止当前页面的运行; 可以作为一个文件的...

    37分钟前
    0163
  • php虚拟主机配置教程

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

    55分钟前 PHP自学教程
    0378
  • php的可变函数

    说明:就是一个变量如果加上括号,PHP的系统会解析成函数,这个变量的值必须是一个函数的名,否则报错,未定义了。 案例

    55分钟前
    0215
  • PHP基于数组实现的堆栈和队列功能示例(附代码)

    堆栈和队列是数据结构的两种实现形式,是使用非常广泛的存储数据的容器。下面呢,就分别讲下这两种容器在PHP中的应用: 使用数组实现堆栈: 1、堆栈容器中,最后进栈的将会被最先出栈,即所谓的“先进后出”的数据...

    42分钟前
    0210
  • PHP函数的介绍

    说明:函数的作用在于对一个功能的封装,封装后在别的页面中引入并调用,可以节省代码量,可以冗余。 8.1.1函数的定义 Function 函数名(【形参1】【,参数2】【,形参n......】){ 要封装到函数的代码; 【return 返...

    38分钟前 PHP自学教程
    0232
  • 重蔚自留地php学习第四十二天——对象(面向对象)

    面向对象编程 面向对象编程不是技术,是一种思想而已。 面向对象编程:OOP(object oriented programming) 面向过程和面向对象 面向过程:将一个事务分成具体的某系列功能,然后将一连串的功能连起来使用,从而...

    33分钟前 我php路线
    0314
  • 第一个PHP程序与开发工具的选择

    理论上PHP代码可以通过类似于<?php  /*php代码*/  ?>嵌入到HTML的任何位置。 定界符 修改PHP5环境包中配置文件可以修改定界符。 php的配置文件在PHP环境包下为php.ini   (initval初始化) short_open_tag = ...

    05分钟前
    0367

联系我们

QQ:951076433

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