目录
一、PHP是什么?
PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。 [1-2]PHP同时支持面向对象和面向过程的开发,使用上非常灵活。
二、PHP能干什么?
开发网站
输出一个属于自己的第一个PHP程序。
<?php
echo 'Hello World';
?>
<?php ?> 标识 [告诉你]
echo 'Hello World';代码
echo [指令] 输出
变量 运算 控制
x = 1
变量 比较运算 分支语句
三、PHP——人人都会编程
起床上班:
打招呼
if 判断[需要预先设定]
18岁考驾照
<?PHP
$sex = '男'
if ($sex == '男'){
echo '帅哥,进店里来看看吧,有XXXX';}
else { echo "妹妹我们店有XXXX化妆品"; }
?>
变量 运算 控制
x = 1
变量 比较运算 分支语句
四、PHP——变量
变量——变量就是个盒子
计算机特点:运算飞快,忘的也飞快
变量就是个盒子存储东西的
$age = 18; // 变量$开头,盒子里面放18
$age = 19; //盒子里面放19,覆盖18
echo $age; //输出盒子里面放的变量19
$age = $age + 1; //赋值
$age = 20; //变量赋值
变量命名名字
$ 标识
必须是字母[a-z、A-Z]、下划线、数字[0-9]名字,不能数字开头
$age = 1;
$1 = 1; //不合法
$! = 321; //不合法
五、PHP——运算符
运算符符号
加减乘除 取余 比较 大于等于 小于等于 不等于
$wang = 10000;
$Ma = 150000;
<?php
$wang = 10000;
$Ma = 150000;
echo $wang + $Ma;
?>
取余:
echo 7 % 3;
<?php
if ($Fang == $zheng)
{
echo '他们同岁';
}
else
{
echo '他们不同岁';
}
?>
六、PHP——控制结构
1、顺序结构
穿衣服 穿鞋子 刷牙洗脸 去上班
$a = 1;
$a = 2;
2、分支结构
$sex = '男生'
<?php
if ($sex == '男生')
{
echo 'Hello Boy';
}
else
{
echo 'Hello';
}
?>
3、循环语句
while() 不断的做某件事
比如说我们现在在喝水
<?php
$water = 1;
while($water<6)
{
echo '我喝了'.$water.'杯,服务员再给我杯水吧<br />';
$water = $water + 1;
}
echo '谢谢,我喝了'.$water.'杯水,不渴了';
?>
七、PHP——你已经学会了编程
1、打印1-100
1、<?php
$i = 1;
while($i<=100)
{
echo $i."<br />";
$i = $i+1;
}
?>
2、打印1-100偶数
<?php
$i = 1;
while($i<=100)
{
if($i%2==0)
{
echo $i."<br />";
}
$i = $i +1;
}
?>
3、遇到7的倍数,打印字符A
<?php
$i = 1;
while($i<=100)
{
if($i%7==0)
{
echo "A<br />;
}
$i = $i + 1;
}
?>
4、遇到13的倍数,打印字符B
<?php
$i = 1;
while($i<=100)
{
if($i%13==0)
{
echo "B<br />";
}
$i = $i+1;
}
?>
八、PHP——字符串处理函数
1、字符串是什么
字符串其实就是文本 代码
2、单双引号的区别
单引号:直接打印引号里面的东西
双引号:解析引号里面的东西是否有变量
例如:$d = 5
$a = '$d'; // 输出$d,也就是5
$b = '$d'; //输出5
3、字符串处理函数
strstr() 字符串的匹配和寻找
str_replace() 字符串替换
<?php
$a = 'XXX,CNM';
if(strstr($a,'CNM') == 'CNM') // 看变量a里面是否有字符串'CNM’
{
echo 'No';
}
else
{
echo "ok";
}
?>
<?php
echo str_replace("World","shanghai","Hello World!");
?>
九、PHP——数组
数组
实际上是一排柜子
存东西
号码牌 标识
号码牌 key 键[独一无二的不会重复]
key 键 value 值
<?php
$a = array('001' => '70帽子','002' =>'SSG衣服 ,'003' => '捏风手机');
print_r($a); // echo $a;
echo $a['003'];
//也可以这样
//$a = array( 1=> '70帽子','002' =>'SSG衣服 ,'003' => '捏风手机');
// echo $a[1];
var_dump($a); // 打印出变量a里面的定义 如同//$a = array( 1=> '70帽子','002' =>'SSG衣服 ,'003' => '捏风手机');
?>
十、什么是表单
表单在网页中主要负责数据采集功能。
一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用动态脚本的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的动态脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
使用场景:
登录框
搜索框
留言框
上传框
……(各种框)
表单标签:
<form action= "URL" method="GET/POST" >
表单域:即表单组件,主要有
文本框、密码框、隐藏域、复选框、单选框、文件上传框
多行文本框(文本域)
下拉选择框
……
表单按钮:
提交按钮
复位按钮
一般按钮
表单标签:
<form action= "URL" method="GET/POST" >
十一、初始数据库
1、数据库是什么?
·存放数据的仓库
2、它的结构是怎么样的?
库 表 字段 记录
3、常见的数据库有哪些?
Mysql Access MSSQL Oracle
十二、数据库结构改变
知道自己现在数据库有什么结构
show databases 查看有什么库
show tables 查看有什么表
use 库名 打开数据库
desc 表名 查看表的结构
建立数据库:Create database 库名
删除数据库:Drop database 库名
建立表:create table 表名(字段名1 字段类型,字段名2 字段类型)
出现了不知道的东西,字段类型是什么?
就是字段的格式,例如 int 数字 [只能存储数字]
varchar 字符串 [能存储字符串] varchar(255) [能存储255个字符]
删除数据表:drop table 表名
添加表里面的字段:
alter table 表名 add 字段名 字段类型
删除表里面的字段:
alter table 表名 drop 字段名
修改表内字段名:
alter table 表名 change 旧字段名 新字段名 新类型;
十三、数据库的增删改查
插入数据:
insert into 表名 values(值,值);
insert into 表名(列名1,列名2) values(值1,值2);
查询语句:
select * from 表名 where 条件
select 字段名 from 表名 where 条件
修改记录:
update 表名 set 列名 = 新列值 where 列名 = 旧列值
update 表名 set 列名 = 新列值, 列名2 = 新列值 where 列名 = 旧列值;
删除数据:
Delete from 表名 where 列名 = 列值
十四、运算符和结果处理
结果排序:
order by 1 排序第一个字段
order by 字段名 排列写了字段名的这个字段
默认升序 [asc]
降序 [desc]
分页
limit n,m
limit 从哪里开始,取多少行
多行数据一起输出
group_concat()
模糊查询:
like %s% 查询包含a的所有值
like a% 查询a开头的所有值
like %a 查询a结尾的所有值
休眠函数:
select sleep(2) 服务器进入摸鱼模式,故意拖2秒返回数据
查询当前所有库:
select database();
数字运算符号:
+ - * / %
他们和PHP中没有啥区别
逻辑运算符:
and [满足两个条件才可以] 既要这样,又要那样
or [满足一个条件就可以] 这个或那个都行
not [取反] 大小姐发脾气了,我要去,她非要留。非要和我作对
————————————————
十五、联合查询和子查询
联合查询:
union 将两个查询语句的结果一起输出 [重复的不输出]
union all 将两个查询语句的结果一起输出 [重复也输出]
需要满足条件,相同列数(字段相同)
子查询:
在原本的SQL语句中写小括号,优先执行一个查询语句
select * from ssg where password = (select password from nf where id = 1);
十六、PHP与数据库交互
正常网站:
传参 —> PHP处理 —> 去数据库存东西获取东西 —> 显示数据
这里有很核心的一步时PHP能够操作数据库,这里就需要用到PHP的mysql i 扩展
这个扩展时操作mysql数据库,自带的,你可以理解为他是一些函数,当你看到一个函数时mysql i_ 的适合一般都属于mysql i扩展
Mysql i扩展的核心就是PHP去操作数据库
如何操作:
建立连接:
mysql i_connect(链接地址,账号,密码,库名)
$conn = mysql_connect('localhost','root','root','fuli');
mysql i_select_db(连接,库名);
mysql i_select_db($conn,'fuli');
mysql i_query(连接,执行SQL语句);
$sql = 'insert into nf value(88,\'PHP\')';
mysql i_query($conn,$sql);
mysql i_close($conn);
十七、Web前端基础
1、前端是什么?
我们所看到的网站一般由两个部分组成,前端负责展示,后端负责处理请求,比如你打开一个百度页面。
这个页面就是由前端代码组成,为什么网页会有排版,为什么你可以看到图片和文字,这个就是由前端代码构成
2、前端代码是什么?
前端代码指的是三种语言:HTML+CSS+JS
在程序员的世界中有一种工作叫做前端开发工程师,就是专门写前端页面来加强用户体验感的。
HTML:是前端页面的骨架
CSS:是前端页面的化妆师
JS:丰富网页功能的脚本
HTML 叫做 超文本标记语言 是一种用于创建网页的标准标记语言
CSS 叫做 层叠样式表 能够对网页种元素位置的排版进行下像素级精确控制,拥有对网页对象和模板样式编辑的能力。
Javascipt(简称:js)
他是一种浏览器可以执行的脚本语言,功能非常强大。
渗透测试的特性是接触面广,但是请记住我们不是开发,我们要有了解基本的一些语法架构,并且能够看得懂别让人写的代码。
渗透测试在前端一般和HTML 还有JS接触比较多,CSS用到的较少。
3、HTML最简单的构架
HTML 标签是由尖括号包围的关键词,比如<html>
HTML 标签通常是成对出现的,比如 <b> 和 </b>
<!DOCTYPE html> 声明h5(声明版本)
<html> html代码开始标签
<head> 头部开始标签
<meta charset="utf-8"> 规定编码方式
<title>你好,HTML</title> 规定title显示什么
</head> 头部结束标签
<body> 内容开始标签
<h1>我的第一个标题</h1? 标题标签
<p>我的第一个段落。</p> 段落标签
</body> 内容结束标签
</html> html代码结束标签
HTML是一门语言,标签超级多,我觉得看到不懂的标签去查询就可以了
有一类的标签叫做自闭合标签(看到标签最后又一个/就是)
例如:加载图片的<img/>
换行 <br />
水平线 <hr />
标签可以定义一些属性值,比如给他一个名字
<h1 id='zk'> 方便JS和CSS操作
还有例如:
<img src="https://www.baidu.com/img/baidu_jgylog03.gif" />
我们加载个图片让页面更加丰富
4、JS的妙用
Js可是大大的扩展前端页面与用户交互的功能,Js其实核心就是操作你的浏览器去做他规定的事情,很明显Js可以操纵你的浏览器,这个是一个很危险的事情,所以说如果你执行了恶意的Js代码会影响你电脑的安全性。
例如:
弹框:alert()
读取自动填充的密码:document.getElementByld('pwd').value
截屏
记录键盘
访问内网页面
偷偷发送数据包出去去访问其他页面
Js非常的强大,应用的也非常广泛,但是实现功能可能需要很好的代码功底
不要害怕,前辈以及开发了一些专门攻击的脚本,初期我们只要能套着用就行了
学会禁用Js你能够发现一些为授权访问