2019-10-9:渗透测试,基础学习,php文件上传,mysql基础

header("Content-Type:text/html;charst="utf-8")设置头部信息,解决编码问题
setcookie("loginString",$value,0,"/","localhost",false,true);
参数说明第一个参数指定cookie的标识符key
第二个参数指定cookie的值
第三个参数指定cookie生存期
第四个参数指定,该cookie的作用域,将在Cookie上可用的服务器上的路径。
如果设置为“/”,cookie将在整个域中可用。如果设置为'/fo/',
cookie将只在/fo/Directory和所有子目录(如/Fo/Bar /域)中可用。
默认值是正在设置Cookie的当前目录。
第五个参数,domain,对哪个域设置一个cookie
第六个参数规定是否通过安全的 HTTPS 连接来传输 cookie
第七个参数用于指定,该cookie的属性是否是http-only,意思是无法通过js代码来获取cookie值

php文件上传
有关上面的 HTML 表单的一些注意项列举如下:
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。
<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮

通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。

第一个参数是表单的 input name,第二个下标可以是 "name"、"type"、"size"、"tmp_name" 或 "error"。如下所示:

$_FILES["file"]["name"] - 上传文件的名称
$_FILES["file"]["type"] - 上传文件的类型
$_FILES["file"]["size"] - 上传文件的大小,以字节计
$_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
$_FILES["file"]["error"] - 由文件上传导致的错误代码

explode(标识,字符串),按照标识来将字符串分割为数组
explode(".","text.te.png")==array("text","te","png")
@end(explode(".",$_FILES["file"]["name"]));
in_array(字符,数组),判断字符在数组中是否存在,有就返回true
move_uploaded_file(临时文件位置,目的位置)
file_exists(文件名),检查文件或目录是否存在,如果存在则返回true

php文件管理,文件的打开,关闭,读取,写入
fopen(参数1,打开文件的位置,需要文件路径和文件名,参数2,打开文件的方式),函数fopen()打开文件
打开方式:
r ,只读。在文件的开头开始。
r+ ,读/写。在文件的开头开始。
w ,只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+ ,读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a ,追加。打开并向文件末尾进行写操作,如果文件不存在,则创建新文件。
a+ ,读/追加。通过向文件末尾写内容,来保持文件内容。
x ,只写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

fclose(句柄,就是打开的文件),关闭文件

feof(),检测是否到达文件末尾,如果没有到达文件末尾,返回值是false

fread(打开的文件,读取文件的大小,单位是字节),读取指定文本大小的内容

fgets(句柄) 函数用于从文件中逐行读取文件,如果需要将整个文档都读取出来,就使用feof()函数+fgets(),循环读取
fgetc(句柄)函数用于读取单个字符

file()将整个文档中数据读取到数组中,一行对应一个单元
file_get_contents(),将整个文档的数据读取到字符串中
file_put_contents(文件名,数据),写数据,如果文件名不存在,创建该文件,如果存在就覆盖内容

basename(),获取路径下的文件名
dirname(),获取文件路径

copy(源文件,目标文件),拷贝文件

unset(), unlink(),删除文件

命令执行函数,通过php中某些函数,去执行系统命令和系统进行交互
常用命令执行函数,
system(“系统命令”)
exec(“系统命令”,可选数组)
shell_exec(‘系统命令’)
··,上引号,键盘~键的另外一个符号

代码执行函数,使用php的某些函数,去执行字符串类型的php代码,注意php代码要求按照php标准来写
常用代码执行函数,
eval(“php代码;”),执行字符串类型的代码
assert(“代码”),执行字符串类型的代码,代码最后的分号,可要可不要
preg_replace(/正则表达式/,替换的字符,目标字符串),如果要执行代码解析,需要使用/e模式的,替换的字符中的代码就会被执行,要执行的代码需要写成完整的函数

数据库管理
mysqli,轻量级数据库,适用于中小型企业,性能好,开源
mssql,需要安装到windows系统中,不支持跨平台,适用于中大型企业
access,小巧方便,适用于小型企业,小型项目
oracle,收费的,适用大型企业,跨平台,性能高,硬件要求高

常用框架组合
mysql+php
mssql+asp,aspx
oracle+java
access+asp
oracle+jsp

数据库模型
关系型数据库,也叫结构化数据库,mysql,mssql,oracle ,db2等,有库有表
非关系型数据库,也叫非结构化数据库,redis,mongodb,nosql,postgresql,hbase等等,一个键一个值

管理Mysql数据库的方式
DOS命令下管理,需要配置mysql环境变量,mysql -u -p 输入对于的账号密码,-p后可以不直接输入密码
phpmyadmin,基于web网页数据库管理平台
mysql-front,开源的c/s模式的数据库管理平台
navicat,工具,功能强大的数据库管理平台,收费

mysql数据库结构
数据库名-->数据表-->表头(字段名)--->数据内容
表中有几个字段,就会有几列数据
一行数据叫做一个记录

管理Mysql数据库的常用命令,dos下mysql命令需要加;分号
mysql -u -p
show database;查看所有数据库
use mysql; 表示进入mysql数据库
show tables;查看当前数据库中的数据表
select * from table_name;查看表中所有数据

posted @ 2019-10-09 20:04  bonga  阅读(185)  评论(0编辑  收藏  举报