Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:总结的很棒
$_SERVER['HTTP_ACCEPT_LANGUAGE']; //浏览器语言
$_SERVER['REMOTE_ADDR'];//当前用户IP
$_SERVER['REMOTE_HOST'];//当前用户主机名
$_SERVER['REQUEST_URI'];//URL
$_SERVER['SERVER_NAME'];//服务器主机的名称
$_SERVER['REMOTE_PORT'];//端口
$_SERVER['PHP_SELF'];//正在执行脚本的文件名
$_SERVER['argv'];//传递给该脚本的参数
$_SERVER['argc'];//传递给程序的命令行参数的个数
$_SERVER['GATEWAY_INTERFACE'];//CGI规范的版本
$_SERVER['SERVER_SOFTWARE'];//服务器标识的字串
$_SERVER['SERVER_PROTOCOL'];//请求页面时的通信协议的名称和版本
$_SERVER['REQUEST_METHOD'];//访问页面时的请求方法
$_SERVER['QUERY_STRING'];//查询(query)的字符串
$_SERVER['DOCOUMENT_ROOT'];//当前运行脚本所在的文档根目录
$_SERVER['HTTP_ACCEPT'];//当前请求的Accept:头部的内容
$_SERVER['HTTP_ACCEPT_CHARSET'];//当前请求的Accetp-Charset:头部的内容
$_SERVER['HTTP_ACCEPT_ENCODING'];//当前请求的Accept-Encoding:头部的内容
$_SERVER['HTTP_CONNECTION'];//当前请求的 Connection: 头部的内容。例如:“Keep-Alive”
$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址
$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容
$_SERVER['HTTPS']//如果通过https访问,则被设为一个非空的值(on),否则返回off
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名
$_SERVER['SERVER_ADMIN'] #管理员信息
$_SERVER['SERVER_PORT'] #服务器所使用的端口
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型
filter_has_var(INPUT_GET,"name");
filter_has_var(INPUT_POST,"name");
filter_has_var(INPUT_COOKIE,"name");
filter_has_var(INPUT_SERVER,"name");
filter_has_var(INPUT_ENV,"name");
filter_id() 函数返回指定过滤器的 ID 号。如果成功则返回过滤器的 ID 号,如果过滤器不存在则返回 NULL
filter_name(过滤器名称);
filter_input() 函数从脚本外部获取输入(比如表单输入),并进行过滤。该函数用于对来自非安全来源的变量进行验证,比如用户输入。
filter_input(input_type, variable, filter, optons);
//input_type:必需,规定输入类型(INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_ENV, INPUT_SERVER)
//variable:必需,固定要过滤的变量,外部输入变量。
//filter:可选。规定要使用的过滤器的id或者过滤器名称。默认值是 `FILTER_SANITIZE_STRING`
//option:可选,规定一个包含标志/选项的关联数组或者一个单一的标志/选项。检查每个过滤器可能的标志和选项
Array
(
[0] => int
[1] => boolean
[2] => float
[3] => validate_regexp
[4] => validate_url
[5] => validate_email
[6] => validate_ip
[7] => string
[8] => stripped
[9] => encoded
[10] => special_chars
[11] => unsafe_raw
[12] => email
[13] => url
[14] => number_int
[15] => number_float
[16] => magic_quotes
[17] => callback
)
filter_var() 函数通过指定的过滤器过滤一个变量,如果成功,则返回过滤的数据,如果失败,则返回FALSE
filter_var(variable, filter, options);
//variable:必需,规定要过滤的变量。
//filter:可选,规定要使用的过滤器ID,默认是FILTER_SANITIZE_STRING
//options:可选,规定一个包含标志/选项的关联数组或者一个单一的标志/选项,检查每个过滤器可能的标志和选项
filter_var_array() 函数获取多个变量,并进行过滤,filer_var的数组形式
filter_var_array(array, args);
//array:必需,规定带有字符串键名的数组,包含要过滤的数据。
//arg:可选,规定过滤参数数组,合法的数组键名是变量名,合法的值是过滤器ID
FILTER_CALLBACK//调用用户自定义函数来过滤数据。
FILTER_SANITIZE_STRING//去除标签,去除或编码特殊字符。
FILTER_SANITIZE_STRIPPED//"string" 过滤器的别名。
FILTER_SANITIZE_ENCODED//URL-encode 字符串,去除或编码特殊字符。
FILTER_SANITIZE_SPECIAL_CHARS//HTML 转义字符 '"<>& 以及 ASCII 值小于 32 的字符。
FILTER_SANITIZE_EMAIL//删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]
FILTER_SANITIZE_URL//删除所有字符,除了字母、数字以及 $-_.+!*'(),{}|\^~[]`<>#%";/?:@&=
FILTER_SANITIZE_NUMBER_INT//删除所有字符,除了数字和 +-
FILTER_SANITIZE_NUMBER_FLOAT//删除所有字符,除了数字、+- 以及 .,eE
FILTER_SANITIZE_MAGIC_QUOTES//应用 addslashes()。
FILTER_UNSAFE_RAW//不进行任何过滤,去除或编码特殊字符。
FILTER_VALIDATE_INT//把值作为整数来验证。
FILTER_VALIDATE_BOOLEAN//把值作为布尔选项来验证。如果是 "1"、"true"、"on" 和 "yes",则返回 TRUE。如果是 "0"、"false"、"off"、"no" 和 "",则返回 FALSE。否则返回 NULL。
FILTER_VALIDATE_FLOAT//把值作为浮点数来验证。
FILTER_VALIDATE_REGEXP//根据 regexp(一种兼容 Perl 的正则表达式)来验证值。
FILTER_VALIDATE_URL//把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL//把值作为 e-mail 地址来验证。
FILTER_VALIDATE_IP//把值作为 IP 地址来验证,只限 IPv4 或 IPv6 或 不是来自私有或者保留的范围。