1. robots.txt

爬虫协议

网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

2. 入口文件

index.php

3. 目录结构分析

admin 后台

api 接口

cert 证书

data 数据

demo 示范(安装成功需要删除)

install 安装目录(安装成功需要删除)

upgrade 升级(安装成功需要删除)

docs 文档

h5 h5代码

images 商品图片目录

includes 包含文件目录

js 所有的js文件

languages 语言包

src scss文件

temp 临时文件

themes 模板文件

wap wap页面

widget 组件

2. 数据库分析

商品管理

商品

商品分类

用户评论

商品品牌

商品类型

商品标签

虚拟商品

促销管理

红包

商品包装

祝福贺卡

团购活动

专题管理

拍卖活动

优惠活动

批发管理

超值礼包

积分商城商品

订单管理

订单

合并订单

缺货登记

发货单

退货单

广告管理

广告

广告位置

报表统计

流量分析

搜索引擎

访问购买率

文章

文章分类

文章

在线调查

会员管理

会员

会员等级

会员留言

充值和提现申请

权限管理

管理员

管理员日志

角色

办事处

供应商

系统设置

商店管理

会员注册项设置

支付方式

配送方式

邮件服务设置

地区列表

友情链接

验证码管理

站点地图

商品(虚拟商品)

N:1 商品分类

N:M 用户评论

N:1 商品品牌

N:1 商品类型

N:M 商品标签

N:1 商品包装

N:1 商品贺卡

N:M 团购活动

N:M 拍卖活动

N:M 优惠活动

N:1 批发管理

N:M 超值礼包

N:1 积分商城商品

N:M 订单

N:M 文章

N:1 红包类型

N:M 专题

1:1 缺货登记

订单

N:1 合并订单

1:1 发货订单

1:1 退货订单

N:1 会员

广告

1:1广告位

广告位1:N站外投放js

文章

N:1 文章分类

会员

N:1 会员登记

N:1 会员留言

1:N充值和提现申请

权限管理 管理员

N:1 角色

1:N 日志

N:1 办事处

N:1 供货商

设计数据库:

需求文档

找实体、找关系

建模(navicat、MySQL workbench等

生成数据库

3. 目录结构分析

admin 后台

api 接口

cert 证书

data 数据

demo 示范(安装成功需要删除)

install 安装目录(安装成功需要删除)

upgrade 升级(安装成功需要删除)

docs 文档

h5 h5代码

images 商品图片目录

includes 包含文件目录

js 所有的js文件

languages 语言包

src scss文件

temp 临时文件

themes 模板文件

wap wap页面

widget 组件

*.php文件

index.php 入口文件

4. phpini

① define('IN_ECS', true);

防止用户不通过入口文件访问includes目录下的文件

② init.php

@ 屏蔽错误信息

③ error_reporting()

1 E_ERROR 运行时致命的错误。不能修复的错误。停止执行脚本。

2 E_WARNING  运行时非致命的错误。没有停止执行脚本。

4 E_PARSE  编译时的解析错误。解析错误应该只由解析器生成。

8 E_NOTICE  运行时的通知。脚本发现可能是一个错误,但也可能在正常运行脚本时发生。

8191 E_ALL  所有的错误和警告的级别,除了 E_STRICT(自 PHP 6.0 起,E_STRICT 将作为 E_ALL的一部分)

0  0则代表禁用错误报告

另一种禁用错误报告的方式:

php.ini  display_errors = On 改为 display_errors = Off

④ define(‘ROOTPATH’,’url’);

定义根路径为常量,方便访问

⑤ 常量引入 inc_constant.php

将常量全部存放到一个文件中,需要的时候引入

⑥  get_magic_quotes_gpc() 已被 php 5.4 移除 https://blog.csdn.net/kaixinfelix/article/details/18799557

SQL注入:

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

例1:已知用户名 admin,在表单中填入 admin‘ or ‘ 1

就可以不写密码直接登录

SELECT * FROM user WHERE name = ‘admin’ or ‘1’ AND password = $pwd;

解决:

  1. PDO或Mysqli面向对象方式链接数据库
  2. mysql_real_escape_string() 函数

https://www.w3school.com.cn/php/func_mysql_real_escape_string.asp

ecshop二次开发笔记的更多相关文章

  1. ecshop二次开发笔记--订单表结构ecs_order_info说明

    -- 表的结构 `ecs_order_info`  CREATE TABLE IF NOT EXISTS `ecs_order_info` (  `order_id` mediumint(8) uns ...

  2. ECSHOP二次开发指南

    ECSHOP二次开发指南 发布时间:2013-05-28 12:47:00   来源:   评论:0 点击: 次 [字号:大 中 小] QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更 ...

  3. EcShop二次开发系列教程–总纲

    EcShop作为老牌的B2C独立网店系统,功能非常全名,强大的文件.数据库缓存机制,保证前后台系统执行速度更快.系统平稳运行.但是过多的功能也或多或少的会影响到系统的整个效率,所有在使用EcShop搭 ...

  4. 【基于spark IM 的二次开发笔记】第一天 各种配置

    [基于spark IM 的二次开发笔记]第一天 各种配置 http://juforg.iteye.com/blog/1870487 http://www.igniterealtime.org/down ...

  5. ecshop二次开发 给商品添加自定义字段

    说起自定义字段,我想很多的朋友像我一样会想起一些开源的CMS(比如Dedecms.Phpcms.帝国)等,他们是可以在后台直接添加自定义字段的. 抱着这种想法我在Ecshop的后台一顿找,不过肿么都木 ...

  6. ecshop二次开发之购物车常见问题

    1.ecshop二次开发中保存注册用户购物车数据解决方法:ecshop购物车是数据库中cart表来支持的,在ecshop表中rec_id是编号,user_id是注册用户的id,session_id表示 ...

  7. phpcms二次开发笔记

    phpcms二次开发笔记 --soulsjie 以下载的全新的phpcms搭建一个新的站点为例,讲解如何利用phpcms进行二次开发 一.下载和安装phpcms http://www.phpcms.c ...

  8. Ecshop二次开发必备基础

    EcShop二次开发学习方法 近年来,随着互联网的发展,电子商务也跟着一起成长,B2B,C2C,B2C的电子商务模式也不断的成熟.这时催生出了众多电子商务相关的PHP开源产品.B2C方面有Ecshop ...

  9. EcShop二次开发学习方法和Ecshop二次开发必备基础

    ecshop二次开发学习方法 近年来,随着互联网的发展,电子商务也跟着一起成长,B2B,C2C,B2C的电子商务模式也不断的成熟.这时催生出了众多电子商务相关的php开源产品.B2C方面有Ecshop ...

随机推荐

  1. 深入理解D3D9

    本文写的较为深入,故转载在此留以备案,呵呵~ 原文链接为:http://www.cnblogs.com/effulgent/archive/2009/02/10/1387438.html ------ ...

  2. Selenium中使用Cookies绕过登录

    在使用selenium测试后台时常常每个流程都需要走登录流程,这样自然比较浪费时间.如果遇到登录需要输入验证码等情况,就可能出师未捷身先死. 在Web应用中,登录状态通常是通过Cookie中对应的se ...

  3. scrapy框架之spider

    爬取流程 Spider类定义如何爬取指定的一个或多个网站,包括是否要跟进网页里的链接和如何提取网页内容中的数据. 爬取的过程是类似以下步骤的循环: 1.通过指定的初始URL初始化Request,并指定 ...

  4. 动态规划——区间DP,计数类DP,数位统计DP

    本博客部分内容参考:<算法竞赛进阶指南> 一.区间DP 划重点: 以前所学过的线性DP一般从初始状态开始,沿着阶段的扩张向某个方向递推,直至计算出目标状态. 区间DP也属于线性DP的一种, ...

  5. richtextbox Ctrl+V只粘贴纯文本格式

    只能粘贴剪切板中的TXT内容 并且 不能改变 剪切板的内容1 当用户按下Ctrl+V屏蔽系统的粘贴功能,然后添加自己的功能2019年12月19日 19:34:38 private void richT ...

  6. 验证HashSet和HashMap不是线程安全

    JAVA集合类: java.util包下的HashSet和HashMap类不是线程安全的, java.util.concurrent包下的ConcurrentHashMap类是线程安全的. 写2个测试 ...

  7. 《你不知道的JavaScript(上)》笔记——关于this

    this 指向函数的作用域是一种常见的误解,this 在任何情况下都不指向函数的词法作用域. 在 JavaScript 内部, 作用域确实和对象类似, 可见的标识符都是它的属性. 但是作用域" ...

  8. UML期末复习题

    看了网上的各种UML图的相关资料,找到的都是差不多一样的对图的基本介绍.之前复习的时候也想对不同UML图单独进行复习总结,后来发现这样复习好像没什么用,不能理解每个图之间的关系,所以就没有进一步总结. ...

  9. springboot 整合缓存(Ehcache或者reids)

    这里介绍Spring Boot结合JPA,MySQL和Ehcache实现缓存功能,提高程序访问效率. 一.Maven依赖 <!-- caching --> <dependency&g ...

  10. Objective-C如何自己实现一个基于数组下标的属性访问模式

    在iOS6.0以及OS X10.8之后,Apple引入了一套非正式协议(informal protocol)与Objective-C语法直接绑定.当你实现了这其中的方法之后即可使用数组下标来访问属性元 ...