php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别


Posted in PHP onSeptember 05, 2009

“PHP_SELF”
当前正在执行脚本的文件名,与 document root 相关。举例来说,在 URL 地址为 https://3water.com/test.php/foo.bar 的脚本中使用 $_SERVER['PHP_SELF'] 将会得到 /test.php/foo.bar 这个结果。__FILE__ 常量包含当前(例如包含)文件的绝对路径和文件名。

“SCRIPT_NAME”
包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 包含当前文件的绝对路径和文件名(例如包含文件)。

主要的原因如像:$_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];

找到更好的原因是:
今天在Dreamhost上安?一套PHP程序?r???接的地址都??喑鲆??cgi-system?恚??浅绦虻?onfig?K?]有???,查了查?料才??是SCRIPT_NAME和PHP_SELF不同造成的???。
通常在本?C?y? $_SERVER['SCRIPT_NAME'] 跟 $_SERVER['PHP_SELF'] 大概看不出有什?不同,因?榇蟛糠值?HP不是以CGI模式?行的。
但 DreamHost 上的 PHP 是以 CGI 方式?行,二者就有明?不同的差?。
echo $_SERVER['SCRIPT_NAME']; // (/cgi-system/php.cgi)
echo $_SERVER['PHP_SELF']; // (/admin/test.php)

从http://lists.nyphp.org/pipermail/talk/2005-July/015339.html 发现了一个说明。老外说的。

SCRIPT_NAME solves all the problems mentioned
in this thread - it's just the script name, without any extra garbage
that might be tacked on by the user. PHP_SELF explicitly includes that
extra garbage, so solutions in this thread that involve stripping the
garbage off of PHP_SELF to make it safe are really, really missing the
point - just use SCRIPT_NAME instead. Please don't use FORM ACTION=”";
according to the spec, what the browser does with that is undefined, so
even if it works in current browsers, it might not work in future ones

PHP 相关文章推荐
用PHP实现验证码功能
Oct 09 PHP
PHP数组内存耗用太多问题的解决方法
Apr 05 PHP
php 对输入信息的进行安全过滤的函数代码
Jun 29 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
phpphp图片采集后按原路径保存图片示例
Feb 18 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
既简单又安全的PHP验证码 附调用方法
Jun 02 PHP
如何打开php的gd2库
Feb 09 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
PHP实现数组根据某个单元字段排序操作示例
Aug 01 PHP
Laravel 实现数据软删除功能
Aug 21 PHP
php getsiteurl()函数
Sep 05 #PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 #PHP
用PHP读取flv文件的播放时间长度
Sep 03 #PHP
用php将任何格式视频转为flv的代码
Sep 03 #PHP
ajax php 实现写入数据库
Sep 02 #PHP
php 正则表达式小结
Aug 31 #PHP
自动把纯文本转换成Web页面的php代码
Aug 27 #PHP
You might like
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
js资料prototype 属性
2007/03/13 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
js实时监听文本框状态的方法
2011/04/26 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
2014/05/28 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
Jquery修改image的src属性,图片不加载问题的解决方法
2016/05/17 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
工作中常用到的ES6语法
2018/09/04 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
2018/09/18 Javascript
vue中设置、获取、删除cookie的方法
2018/09/21 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
JS简单数组排序操作示例【sort方法】
2019/05/17 Javascript
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
python检查URL是否正常访问的小技巧
2017/02/25 Python
Python3爬虫全国地址信息
2019/01/05 Python
Django跨域请求原理及实现代码
2020/11/14 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
CSS3之2D与3D变换的实现方法
2019/01/28 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
购房协议书
2014/04/11 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
交通事故死亡赔偿协议书
2014/12/03 职场文书
化工厂员工工作总结
2015/10/15 职场文书
2016春季幼儿园大班开学寄语
2015/12/03 职场文书
2016年端午节校园广播稿
2015/12/18 职场文书