1

PHP中 $_SERVER[“PHP_SELF”] 作用和含义

Posted by 撒得一地 on 2016年11月4日 in PHP笔记

首先 $_SERVER 数组在 PHP 中是一个全局数组,所以,在任意一个 PHP 脚本中都可以使用 $_SERVER 数组中的值。在函数或方法中无需执行 global $variable; 就可以访问它们。

$_SERVER 中存储了包括头信息,路径,脚本位置等,感兴趣的可以打印出来看下:

	<?php
	   echo '<pre>';
	   print_r($_SERVER);
	   echo '</pre>';
	?>

打印结果如下:

$_SERVER 打印结果

在 $_SERVER 数组中存储的众多值中,存储了一个键为 'PHP_SELF' 的值,也就是 $_SERVER[“PHP_SELF”],该值存储的内容是:当前执行脚本的文件名,与 document root 有关。

比如执行一个 php 脚本的地址为:http://localhost/test/7ghost.php/ , 那么  $_SERVER[“PHP_SELF”] 对应的值即为:/test/7ghost.php/。

而且 $_SERVER[“PHP_SELF”] 该地址不包含 url 中的参数,比如你访问的 url 地址为:http://localhost/test/7ghost.php?par=123&par2=333 而 $_SERVER[“PHP_SELF”] 的值为 /test/7ghost.php 。

再比如,你访问的 url 地址为:http://localhost/test/7ghost.php/abc , 那么 $_SERVER[“PHP_SELF”] 的为:/test/7ghost.php/abc 。

当你想要获取当前页面的地址时,你可以使用下面的方法进行获取:

$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

而关于 $_SERVER[‘PHP_SELF’] 使用的安全性,比如这种形式:

<form method="post" action="<?php echo $_SERVER[‘PHP_SELF’]; ?>">

可能会被跨网站脚本攻击。

关于该危险性可以参考:
http://blog.csdn.net/load_life/article/details/7674709

http://www.jianshu.com/p/fc0e590125c9

上一篇:

下一篇:

相关推荐

1 Comment

Comments are closed. Would you like to contact the author directly?
网站地图|XML地图

Copyright © 2015-2024 技术拉近你我! All rights reserved.
闽ICP备15015576号-1 版权所有©psz.