PHP超全局变量$_SERVER

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

$_SERVER[‘HTTP_HOST’] 请求头信息中的Host内容,获取当前域名。
$_SERVER[“SERVER_NAME”] 输出配置文件httpd.conf中的ServerName,一般情况下与HTTP_HOST值相同,但如果服务器端口不是默认的80端口,或者协议规范不是HTTP/1.1时,HTTP_HOST会包含这些信息,而SERVER_NAME不一定包含。(主要看配置文件的设置)。
$_SERVER[“HTTP_USER_AGENT”] 获取用户相关信息,包括用户浏览器、操作系统等信息。
$_SERVER[‘HTTP_ACCEPT’] 当前请求的ACCEPT头部信息。
$_SERVER[“HTTP_ACCEPT_LANGUAGE”] 这个值是由浏览器发送,表明用户默认的语言设置,后面的q值表示用户对该语言的喜好程度。
$_SERVER[“HTTP_ACCEPT_ENCODING”] 大部分的现代浏览器都支持gzip压缩,并会把这一信息报告给服务器。这时服务器就会压缩过的HTML发送给浏览器。这可以减少近80%的文件大小,以节省下载时间和带宽。
$_SERVER[“HTTP_COOKIE”] 浏览器的cookie信息。
$_SERVER[“HTTP_CONNECTION”] 当前请求的连接情况。
$_SERVER[“HTTP_UPGRADE_INSECURE_REQUESTS”] 表示浏览器可读懂服务器发过来的请求,
$_SERVER[“HTTP_CACHE_CONTROL”] 表示浏览器是否会缓存这个页面信息。
$_SERVER[“PATH”] 当前脚本所在文件系统。
$_SERVER[“SystemRoot”] 当前服务器的操作系统。
$_SERVER[“COMSPEC”] 指向cmd.exe的路径。
$_SERVER[“PATHEXT”] 环境变量设置。
$_SERVER[“WINDIR”] 脚本指向的系统目录。
$_SERVER[“SERVER_SIGNATURE”] 包含服务器版本和虚拟主机名的字符串。
$_SERVER[“SERVER_SOFTWARE”] 服务器软件配置信息。
$_SERVER[“SERVER_ADDR”] 当前运行脚本的服务器的ip地址。
$_SERVER[“SERVER_PORT”] 服务器端口。
$_SERVER[“REMOTE_ADDR”] 浏览网页的用户ip。
$_SERVER[“DOCUMENT_ROOT”] 当前运行脚本所在的根目录。
$_SERVER[“REQUEST_SCHEME”] 服务器通信协议,是http或https。
$_SERVER[“CONTEXT_PREFIX”] 前缀。
$_SERVER[“CONTEXT_DOCUMENT_ROOT”] 当前脚本所在的文档根目录。
$_SERVER[“SERVER_ADMIN”] 服务器管理员信息。
$_SERVER[“SCRIPT_FILENAME”] 当前执行脚本的绝对路径。
$_SERVER [“REMOTE_PORT”] 用户连接到服务器时所使用的端口。
$_SERVER[“GATEWAY_INTERFACE”] 服务器使用的CGI规范的版本。
$_SERVER[“SERVER_PROTOCOL”] 请求页面时通信协议的名称和版本。
$_SERVER[“REQUEST_METHOD”] 请求提交数据的方式。
$_SERVER[“QUERY_STRING”] 服务器请求时?后面的参数。
$_SERVER[“REQUEST_URI”] 当前脚本路径,根目录之后的目录。
$_SERVER[“SCRIPT_NAME”] 当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER[“PHP_SELF”] 当前正在执行脚本的文件名。
$_SERVER[“REQUEST_TIME”] 得到请求开始时的时间戳。
$_SERVER[‘HTTP_REFERER’] 获取前一页面的 URL 地址

PHP S E R V E R [ ′ H T T P R E F E R E R ′ ] 无 效 需 要 注 意 的 是 , _SERVER['HTTP_REFERER'] 无效 需要注意的是, SERVER[HTTPREFERER]_SERVER[‘HTTP_REFERER’] 完全来源于浏览器。并不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,$_SERVER[‘HTTP_REFERER’] 不总是真实正确的。

通常下面的一些方式,$_SERVER[‘HTTP_REFERER’] 会无效:

直接输入网址访问该网页。
Javascript 打开的网址。
Javascript 重定向(window.location)网址。
使用 meta refresh 重定向的网址。
使用 PHP header 重定向的网址。
flash 中的链接。
浏览器未加设置或被用户修改。
所以一般来说,只有通过 超链接以及 POST 或 GET 表单访问的页面,$_SERVER[‘HTTP_REFERER’] 才有效。

由于 $_SERVER[‘HTTP_REFERER’] 对 POST 表单访问也是有效的,因此在表单数据处理页面一定程度上可以通过校验 $_SERVER[‘HTTP_REFERER’] 来防止表单数据的恶意提交。但该方法并不能保证表单数据的绝对正确,即对表单数据的真实性检测并不能完全依赖于 $_SERVER[‘HTTP_REFERER’] 。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值