HTTP基础:
规定了浏览器如何向Web服务器请求文件,以及服务器如何根据请求返回文件。
当Web浏览器请求一个Web页面时,首先发送一个HTTP请求信息给Web服务器,包括头部信息,有时也会有消息主体。Web服务器将返回一个回应消息作为响应。
例子:请求:GET /index.html HTTP/1.1 + 一些可选头部信息例如浏览器、操作系统等
响应:HTTP/1.1 200 OK + 一些头部信息包括时间、服务器类型、编码方式等
常用的两种HTTP方法:GET:从服务器端获得信息
POST:向服务器端发送信息
变量:
EGPCS: environment, GET, POST, cookies, server
包括6个全局数组:$_COOKIE, $_GET, $_POST, $_FILES, $_SERVER, $_ENV
$_REQUEST包括$_COOKIE, $_GET, $_POST
$_SEVER['PHP_SELF']:存放当前脚本的路径和名称
服务器信息:
$_SERVER数组:
SERVER_SOFTWARE:服务器标识
SERVER_NAME:主机名,DNS,IP
SERVER_INTERFACE:CGI版本
SERVER_PROTOCOL:协议名称版本
SERVER_PORT:端口号
REQUEST_METHOD:GET或POST
PATH_INFO:客户端发送的扩展路径
PATH_TRANSLATED:服务器由PATH_INFO转换的文件名
SCRIPT_NAME:当前页面的URL路径
QUERY_STRING:检索字符串
REMOTE_HOST:请求本页的机器主机名
REMOTE_ADDR:请求本页的机器IP地址
AUTH_TYPE:页面验证方法
REMOTE_USER:客户端验证的用户
REMOTE_IDENT:不安全的用户验证
CONTENT_TYPE:用POST查询附带信息的类型
CONTENT_LENGTH:用POST查询附带信息的长度
HTTP头在_SERVER数组中创建的项:
HTTP_USER_AGENT:浏览器标识
HTTP_REFERER:上一页面
表单处理:
方法: GET:把表单编码成URL,可缓存
POST:不把表单编码成URL,不可缓存
用$_SERVER['REQUEST_METHOD']获得方法类型
参数: 访问表单参数:$_POST, $_GET, $_FILES
数组名=表单参数名, 数组元素值=表单参数值, .=_
对参数进行自动引号处理: magic_quotes_gpc和addslashes()
自处理页面: 同时生成和处理表单,判断条件:POST方法、变量赋值
粘性表单: 保留查询关键字,在创建HTML字段时使用提交的表单作为默认值
多值参数: HTML中select、checkbox标签的多重选择
粘性多值参数:
文件上传: 用$_FILES数组,<input name="toprocess" type="file">会创建一个文件浏览框
php.ini中用upload_max_filesize硬性指定限制
<input type="hidden" name="MAX_FILE_SIZE" value="10240">提交软限制
上传文件的信息:name, type, size, tmp_name
is_uploaded_file(), move_uploaded_file()
表单验证: empty(),strspn(),strlen()
#php.ini相关:
register_globals:为每一个表单参数、请求信息及服务器环境创建一个独立的全局变量。既方便又危险。
magic_quotes_gpc:disable 所有cookei数据、GET、POST自动调用addslashes()
upload_max_filesize:指定上传文件大小
#相关函数:
string addslashes (string string):将string中对于SQL数据库查询语句中具有特定意义的字符进行转义 ‘, “, /, "/0"
bool is_null (mixed value):value为NULL 返回true
int array_key_exists (mixed key, array array):判断array中是否存在key
string join (array strings, string separator):同implode(),返回string数组中元素用分隔符连接后的字符串
bool is_array (mixed value):判断是否是数组
bool in_array (mixed value, array array[, bool strick]):检查array中是否有value,若加strick则类型必须一致
int array_key_exists (mixed key, array array):判断array中是否存在键名key
bool is_uploaded_file (string path):path的值存在说明文件由表单上传返回true
bool move_uploaded_file (string from, string to):当HTTP POST上传时从from移动到to
bool empty (mixed value):0或未定义返回true
int strspn (string string, string characters):返回由characters组成的string的长度
int strlen (string string):返回string的字符数