
PHP入门到精通系列学习笔记
文章平均质量分 58
有时有晌
这个作者很懒,什么都没留下…
展开
-
个人支付系统实现
基础首页:订单:基于webman+workerman开发1、运行php --ini 找到php cli所使用的php.ini文件位置2、打开php.ini,找到disable_functions一项解除对应函数的禁用部署1、环境注意环境尽量保持一致2、php禁用函数手动解除3、手动解除的话需要自行删除 自动删除的方式不一定能删除完整在这里插入图片描述原创 2024-06-27 18:31:19 · 2071 阅读 · 7 评论 -
关于TP5上传文件request始终获取文件为空的情况处理排查
确保前端传递数据无异常自行排查前端传参,打印是否缺失传了需要上传的文件确认php上传限制部分上传数据可能超过了php自身设置的上传限制,所以导致无法上传。使用$_FILES排查后端是否确实收到TP5 request 在部分情况下确实存在无法获取数据的问题,因此可以使用$_FILES打印查看是否获取到上传文件基本上排查步骤就分这几步,如果没什么意外应该可以解决了。祝好运。...原创 2021-03-09 17:18:51 · 1775 阅读 · 4 评论 -
第097讲 php数据库编程⑨-使用mysqli扩展库(批量执行和事务控制)
<?php$mysqli = new mysqli("localhost", "my_user", "my_password", "world");/* check connection */if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exi..原创 2018-07-30 14:54:36 · 182 阅读 · 0 评论 -
第084讲 http协议深度剖析①-http请求详解 防盗链
如下代码抓包:<h1>abc<h1/><img width="200px" src="a.png"><img width="200px" src="b.png">以下为请求行GET /zhuabaotest.php HTTP/1.1 以下为消息头Host: localhos原创 2018-05-06 13:46:43 · 465 阅读 · 0 评论 -
第085讲 http响应详解②(302 304码运用)
HTTP状态码HTTP状态码(HTTP Status Code) 一些常见的状态码为: - 200 - 服务器成功返回网页 - 404 - 请求的网页不存在 - 503 - 服务不可用 一、1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 - 100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等...原创 2018-05-06 13:47:58 · 277 阅读 · 0 评论 -
第086讲 http协议深度剖析③-http响应详解(禁用缓存设置)
Refresh :网页延时跳转<?php //header("Refresh:3;url=http://www.baidu.com"); header("Refresh:3;url=http://localhost/083.php");?>抓包数据:抓的是http://localhost/086_refresh.phpRequest URL...原创 2018-06-15 16:32:51 · 434 阅读 · 0 评论 -
第087讲 http协议深度剖析④-http响应详解(文件下载)
下载头必须有的 不然浏览器不认的。 Notice 注意代码里边的注释<?php $file_name="b.png"; //1、打开文件 if(!file_exists($file_name)){ echo "文件不存在"; return; } $fp=fopen($file_name,"r");...原创 2018-06-15 16:34:00 · 124183 阅读 · 0 评论 -
第088讲 http协议深度剖析⑤-http响应详解(作业讲评)
列表样式下载图片: 样例代码: fileDownList.php //界面列表<?php header("Content-Type:text/html;charset='utf-8'");?><a href="fileDownProcess.php?filename=a.png">点击下载</a><img src="./imag...原创 2018-07-26 10:39:07 · 244 阅读 · 0 评论 -
第089讲 php数据库编程①-使用mysql扩展库
php数据库编程①mysql扩展库 ②mysqli扩展库 ③pdo mysql数据库 和 mysql扩展库的概念和区别mysql 数据库存放数据的- mysql 扩展库相当于 php提供的操作数据库的api在cmd mysql控制台如果insert语句 插入值有中文的。部分时候会提示插入失败这时候查看mysql> show variab...原创 2018-07-26 10:40:10 · 206 阅读 · 0 评论 -
第083讲 php进阶预热 php执行流程时序图
这个章节 就是 httpwatch 抓包 这个随意了。原创 2018-05-06 13:46:20 · 291 阅读 · 0 评论 -
第082讲 异常处理
<?php function addUser($username){ if($username!="test"){ throw new Exception("添加失败"); } } function updataUser($username){ if($username!="qb"){...原创 2018-05-06 13:45:58 · 151 阅读 · 0 评论 -
第081讲 php错误日志
demo: 自定义一个错误处理函数,当打开一个文件不存在时候,自动调用该函数并记录错误信息到d:/mylog.txt文件中 要求记录错误号,错误信息和发生时间<?php function my_error($errno,$errmes){ echo "<font size='5' color='red'>$errno</font>&...原创 2018-04-18 15:39:24 · 163 阅读 · 0 评论 -
第079 + 80讲 错误和异常处理介绍 处理错误方式 1 、2
错误处理 异常处理错误处理是一个重要组成部分,如果缺少错误处理,除了专业性问题外 ,如果发生错误 将会暴露安全问题。比如检测文件没检测到。如果不做处理,那么服务器会暴露在哪个路径找不到文件。。。。。暴露了服务器部分路径。这就造成了很大的安全隐患——经过处理就可以将服务器自动提示的路径更换为我们想让用户看到的路径such as<?php if(!file_exists(...原创 2018-04-18 15:38:58 · 223 阅读 · 0 评论 -
第78讲 面向对象编程综合练习
<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Descr原创 2017-10-18 15:02:10 · 288 阅读 · 0 评论 -
第77讲 继承与实现比较 final const
这个具体自己上网查了。。 php 跟 java 一样是单继承 1、implement 接口 可以看做是对类extends的补充,而且接口感觉起来更方便 2、implement 接口可以在不打破类继承的前提下对某个类进行功能性的扩展。final1、不希望某个方法被子类重载时,可以用final关键词修饰2、不希望类被继承时候,可以用final<?php/** final class原创 2017-10-18 15:01:49 · 318 阅读 · 0 评论 -
第76讲 接口
接口 使用接口(interface),可以指定某个类必须实现哪些方法,但不需要定义这些方法的具体内容。 接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。 接口中定义的所有方法都必须是公有,这是接口的特性。 实现> 要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法,否则会报一个致命原创 2017-10-18 15:01:27 · 218 阅读 · 0 评论 -
第75讲 抽象类
抽象类 PHP 5 支持抽象类和抽象方法。定义为抽象的类不能被实例化。任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现。 > 继承一个抽象类的时候,子类必须定义父类中的所有抽象方法;另外,这些方法的访问控制必须和父类中一样(或者更为宽松)。例如某个抽象方法被声明为受保护的,那么子类中实原创 2017-10-18 15:01:10 · 188 阅读 · 0 评论 -
第71+72+73+74讲 static静态方法+面向对象三大特征(1)
==什么是静态方法,为什么有静态方法== 静态方法也叫类方法,静态方法是属于所有对象实例的,形式如下: - 访问修饰符 static 方法名 (){} - 注意:静态方法中不能访问非静态属性(变量) - 在类外部 类名::方法名 或者 对象名->方法名 - 在类内部 self::方法名 或者 类名::方法名统计总费用<?php class Student{ publ原创 2017-10-18 15:00:51 · 285 阅读 · 0 评论 -
第70讲 static关键字静态变量
Static(静态)关键字 ==Tip== 本页说明了用 static 关键字来定义静态方法和属性。static 也可用于定义静态变量以及后期静态绑定。参见上述页面了解 static 在其中的用法。 声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。 兼容php 4 如果没有指定访问控制符 ,属性和方法通通默认公有静态方原创 2017-10-18 15:00:23 · 337 阅读 · 0 评论 -
第092~093讲 php数据库编程④ - 使用mysql扩展库(在线词典)
092_search.php<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta n原创 2018-07-26 10:40:40 · 137 阅读 · 0 评论 -
第094讲 php数据库编程⑥-使用mysqli扩展库
使用mysqli 查询 db100中的words数据库<?php //mysqli操作mysql数据库(面向对象风格) //1、创建mysqli对象 $mysqli = new MySQLi('localhost','root','tmdqobn','db100'); echo "这是啥 ".$mysqli->client_info." 错误...原创 2018-07-26 10:40:59 · 175 阅读 · 0 评论 -
第119讲 session③-购物车 cookie 禁用后 如何使用session session防用户非法登陆
如上demo示例代码视频上代码是这么撸的注意 session 操作过程中 如果禁用cookie 那么 如上代码 购买一次生成一次session 也就是说 一个人购买的 几本书分别存在不同的session里边 这就很逆天了。。会取不出来的。想啊 每次生成一个session 如果不出意外应该是一本都看不到,因为浏览器根本就没有携带cookie没有携带cookie就意味着没有session_i...原创 2019-04-29 16:34:16 · 972 阅读 · 0 评论 -
第118讲 session② 获取session 更新session 删除session session细节和原理深入
注意所有取session之前都要判断是否为null<?php header("content-type:text/html;charset=utf-8"); echo "<br/>***如何获取session数据***<br/>"; //初始化session session_start(); //获取session //1、把所有的session获取出来...原创 2018-11-20 12:08:15 · 488 阅读 · 0 评论 -
第117讲 session①-session的原理介绍 保存session
注意所有取session之前都要判断是否为null思考问题浏览网站时,张三李四购买不同的商品,并且在查看购物车时候可以查看到各自需要购买的商品思路:1、数据库2、cookies3、session当登陆某个网站,在任意网页界面都能看到登陆的名字?思路:1、数据库->特别繁琐性能极差,每个页面都要请求数据库,加入用户量多爆炸了2、cookie问题1:安全性问题...原创 2018-11-20 12:07:41 · 262 阅读 · 0 评论 -
第113+114+115+116讲 cookie①-cookie原理介绍 创建cookie获取cookie
cookies win7路径C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\CookiescookieCookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。定义于 RFC2109 和 2965 中的都已废弃,最新取代的...原创 2018-11-20 12:06:34 · 1776 阅读 · 0 评论 -
第112讲 mvc模式①-用mvc模式改进网站架构
[Work1.4增加添加用户功能模块顺带mvc](链接: http://pan.baidu.com/s/1o8bl5mM 密码: 6nkv)注意: 同一逻辑的请求提交给同一个控制器这样方便点。处理起来简单。而且同时可以大幅度减少文件数量(也就是说对同一张表的操作可以封装到同一个控制器即可)...原创 2018-11-20 12:05:41 · 195 阅读 · 0 评论 -
第110+111讲 分层+mvc模式
初期增加删除功能同时附带弹窗取消功能[Work1.3增加删除弹窗验证,更新代码](链接:http://pan.baidu.com/s/1slbLomT 密码:7hpg) [Work1.3更新代码将EmpList里边删除数据部分拆分到控制器里边](链接: http://pan.baidu.com/s/1i5xauOl 密码: dec4)...原创 2018-09-12 09:40:36 · 169 阅读 · 0 评论 -
第107+108+109讲 雇员管理系统⑤-分层模式管理员登陆 雇员分层显示 整体分页
如 第106讲的代码 界面和业务逻辑完全混杂在一块 [管理员封层模式登陆 代码:](链接: http://pan.baidu.com/s/1qXD04Ba 密码: 248b) 上方代码将管理员登陆界面以及操作数据库等逻辑处理分离逆天啊 我去 这后边数组注释 想想就蛋疼。明明数组里一个 索引 0 就是取不出来 尴尬 public function queryCo...原创 2018-09-12 09:40:14 · 276 阅读 · 0 评论 -
第106讲 雇员管理系统④-model1模式雇员分页
工程存储路径 密码:gixq <!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta nam原创 2018-09-12 09:39:54 · 183 阅读 · 0 评论 -
第104、105讲 雇员管理系统②③-model1模式简单登陆+数据库登陆
login.php<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta name="Generator" content="EditPlus®"><meta name="Au原创 2018-08-09 17:58:46 · 198 阅读 · 0 评论 -
第103讲 zendstudio的使用 项目开发五个阶段,雇员管理系统①
zendStudio 快捷键跟eclipse差不多雇员管理系统的开发文档1、需求分析: 该项目完成如下功能:1.1、管理员可以登陆管理界面1.2、可以对雇员信息增删改查附带功能:可以保存用户在一定时间内不用反复登陆;统计网站被访问的次数2、画出uml示意图3、界面设计4、设计数据库管理员表表名 admincreate table admin (i...原创 2018-08-09 17:58:25 · 229 阅读 · 0 评论 -
第102讲 预定义超全局数组①-原理分析 $_SERVER $_ENV $GLOBALS
$_SERVER$HTTP_SERVER_VARS [已弃用]SERVER−−SERVER−−_SERVER -- HTTP_SERVER_VARS [已弃用] — 服务器和执行环境信息 说明 $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务...原创 2018-08-09 17:58:07 · 399 阅读 · 0 评论 -
第101讲 预定义超全局数组①-原理分析 $_POST $_REQUEST
界面:<!doctype html><html lang="en"> <head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="A原创 2018-07-30 14:56:17 · 268 阅读 · 0 评论 -
第100讲 预定义超全局数组①-原理分析 $_GET
==global==<?php $a = 23; function test(){ //如果需要在方法中使用全局的变量并希望全局变量值改变 ,那么声明一下就好了,如下 global $a;//声明这个之后 最后边那个echo $a 打印的就是45了 否则 打印的值不变。 $a=45; } test(...原创 2018-07-30 14:55:36 · 179 阅读 · 0 评论 -
第099讲 php数据库编程⑾-使用mysqli扩展库增强(预处理技术)
使用stmt增强扩展进行查询<?php header("content-type:text/html;charset=utf-8"); //预编译查询 $mysqli = new MySQLi('localhost','root','tmdqobn','db100'); if($mysqli->connect_error){ di...原创 2018-07-30 14:55:16 · 177 阅读 · 0 评论 -
第098讲 php数据库编程⑩-使用mysqli扩展库增强(预处理技术)
如上方案三就是使用预编译技术—-该方案还可以防止sql注入攻击 执行程序前mysql> select * from words;+----+----------+----------+| id | enword | chword |+----+----------+----------+| 1 | one | 一 || 2 | t...原创 2018-07-30 14:54:54 · 201 阅读 · 3 评论 -
第095讲 php数据库编程⑦-使用mysqli扩展库
结果集对应关系可以有以下几种,都是查询出来之后取数据的 如上图 前两种效率较高。095_mysqli.php<?php //include 'mysqliHelper.php';//可以选用include 或者 require_once 或者 直接用自动加载类执行 function __autoload($class_name){ re...原创 2018-07-26 10:41:19 · 151 阅读 · 0 评论 -
第69讲 php面向对象中的析构方法
析构方法 PHP 5 引入了析构函数的概念,这类似于其它面向对象的语言,如 C++。析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。 作用析构函数的作用主要是用于释放资源,比如数据库资源,图片资源,销毁某个对象等<?php class Person{ public $name; public $age; public原创 2017-10-18 15:00:03 · 310 阅读 · 0 评论 -
第61+62+63讲 类和对象基本概念 以及其在内存中存在的形式
学习目标初步掌握php中的类和对象各种变量在内存中存在的形式分析什么是==成员属性==和==成员方法==掌握==构造方法==和==析构方法==的使用举个栗子: 小李:人 性别:男,年龄:29 肤色:黄色 小李是个具体的对象 小李抽象出去==人 性别 之类的都是小李所具有的属性 类和对象的区别 - 1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽原创 2017-05-31 16:02:44 · 453 阅读 · 0 评论 -
第038讲 布尔 浮点 字符串 运算符
php 基本语法–boolean<?php $a=0; if(!$a){ var_dump($a); echo "他是假的"; } $a=0.0; if(!$a){ echo "<br/>"; var_dump($a); echo "他是假的"; }?>//-------原创 2017-01-05 12:28:46 · 356 阅读 · 0 评论