PHP后端基础学习笔记(0)
此部分用于记录记录自己学习PHP的笔记
¥
相关内容或课程参考于自己大一报的付费班,2000多,到现在一年整了,还没看,自制力真的不行,勿当韭菜
大一的时候感觉课很少,很轻松,结果大二那么多课,还难,还没用,离谱,在大学竟让没有大段完整的时间,必须在晚上、课上、周末挤时间去学习真正的技术和自己感兴趣的
学习目的·
- 把之前买的付费课看完
- PHP在WEB渗透测试中占有一定的比重(也可能是因为自己看的是0基础入门课),例如其独有的PHP反序列化、文件包含、SQL注入,分析逻辑
- (37 封私信 / 80 条消息) 为啥 php 还有这么多人在用啊? - 知乎 (zhihu.com) 尽管我以后也确实不会用PHP开发,有些同学说过时了,不过认为了解一下很重要,对于自己这个专业,因为还存在很多PHP搭建的网站
前置配置或基础·
- 安装了PHPstudy,自带了PHP,加入环境变量
- 安装PHPstorm,配置解释器,和pycharm一样简单
- 有一定的HTML基础
第一讲:·
语法·
语法 写的太乱
PHP标签:标准写法:<?php "code" ?>
注释:#单行 /**/多行
变量:加$
输出:echo $x;
格式:var_dump($x) print_r
十六进制ASCII:\x3d
\ddd 三位八进制对应的ASCII
\r和\n:一文让你搞明白文本或代码中 \n 和 \r 的区别-腾讯云开发者社区-腾讯云 (tencent.com)
\n在终端换行,<br>或."<br>"
才能在浏览器换行 变量
数组:
1 |
|
多维数组:$ary=[$arr,$arr1,$arr2];#里面为数组名
var:(3条消息) PHP中var关键字用法_php中var的用法_H-大叔的博客-CSDN博客
类(属性的调用类似C,$test->name,常量中间用两个::)
1 | 比较: ==只比较值 ===比较值和类型 |
const 常量 = 值 使用常量时,前不加$
双引号里可以写变量,字符串连接用.
1 |
|
建议直接参考菜鸟教程或博客等学习(无其他语言基础C,python的可以找视频看)
额,整节课都比较水,有其他编程语言基础再看自然很多都是互通的,1.5X倍速+快进
大可以很快过一下,就直接讲特性,魔术方法等的内容
第二讲:·
变量作用域、请求头等·
还以为听错了,结果是真的:PHP的全局变量只能在函数外使用,调用的利用global关键字
static函数调用后不销毁
1 | <!doctype html> |
生成html模板:html:5 按下TAB键
$_REQUEST 用于收集 HTML 表单提交的数据(危险):
CTFHub 技能树-- RCE(详解)_ctf rce_hcjtn的博客-CSDN博客
实操:前端构建表单,php后端接收
<input name="num[]">
下面引用时:isset($_POST)['num']
直接用统一名 采用数组处理
获取请求头信息:·
1 | <body> |
有些服务器信息例如apache版本,若是phpstudy,可以在其中的配置文件中修改
魔术常量:__ METHOD __ 用两个下划线包裹
还行吧,后面介绍了些不知道的,也复习了下表单请求头之类的,不过一节课2,3小时学到的不多
刚发现这个课是学完html学php,再学python,怪不得感觉慢些
第三讲:·
面向对象·
看目录的话这节课是讲面向对象、文件包含:
1 | class Animal{ |
挺好的,好像了解了为什么之前JAVA需要用this了,定义的属性无法直接使用
- 好吧,还是不理解
(1条消息) this在Java中的必须使用和不推荐使用的情况_iteye_15898的博客-CSDN博客
参数名和成员变量名相同时,必须使用this加以区分
下面又大概解释了,构造函数,可以在new对象时直接传参赋值:
1 | #放在成员方法首个的位置 |
如果要构造有独特属性的子类,可以采用extends 继承 — 确实,用动物来举例还是蛮方便的;而原有的可传参个数少于子类,可以overview重写
访问控制·
PHP对属性、方法的访问控制,是在前加关键词(未定义视为public):
- public(公有):公有的类成员可以在任何地方被访问
- protected(受保护):可被自身、子父类访问
- private(私有):只能被其定义所在的类访问
程序耗时、日期啥的,没啥好听的
文件包含·
require_once "key_value.php"; include "1.php"
require 遇到错误后不再执行,include照旧执行
文件包含,能够很好地实现复用,公共文件引用,类的调用
确实自己在博客搭建时,也是遇到了header和footer这类文件,可以一次修改多页面部署,当时以为算是配置文件
讲的很松散,内容也还是感觉简单,看老师敲代码的时候一直想跳过
之前看acwing的课就没这感觉,还是不够难,haha,毕竟只是工具而已
第四讲:·
css想写好,也得花大功夫学习,但是因为样式不涉及数据交换,所以不是重点学习对象
创建简单的登陆页面,文件读写(密码)·
header("Location: admin.php");
页面跳转||window.location = 'login.php'
fread 字节读取,1ASCII1字节,1中文三字节
中间的代码就不实践了,看的时候感觉造轮子真的很麻烦,例如账号密码验证,作为用户不需要考虑那么多细节,但开发时就要考虑较多问题:加密、防爆破、字符过滤等等
有点无聊,花了这么久时间也没讲很多
cookie和session·
没能完全地分清楚各自的作用
唉,过程中笔记没好好记
下来再补吧
还行,但自己只是听了
第五讲:·
$sql=“sql语句 字段加上反引号``”;