什么是PHP中的函数'sv'?

时间:2016-12-19 19:04:56

标签: php

我正在研究CMSimple 3.0框架中的代码,使用此行:

if (eregi('login.php', sv('PHP_SELF')))die('Access Denied');

因此,如果sc('PHP_SELF')中存在字符“ login.php ”,则会显示“拒绝访问”。

我知道PHP_SELF是正在运行的脚本的名称(即被调用页面的名称)。但经过一些研究后,我无法找到函数 sc 的作用。

知道为什么吗?

2 个答案:

答案 0 :(得分:1)

您正在使用的CMSimple版本中的函数sv在cmsimple / cms.php的第190行中定义(您会注意到,这是唯一在直接调用时不会引发致命错误的脚本)。尽管文档中定义的定义很简短,但您会注意到sv做了两件事:

  1. 除非数组$ _SERVER已经存在,否则它将创建一个名为$ _SERVER的全局变量数组,该数组由$ GLOBALS ['HTTP_SERVER_VARS']中的变量组成。

HTTP_SERVER_VARS数组包含诸如标题,路径和脚本位置之类的信息。您会在这些数组中找到一些熟悉的元素,例如; PHP_SELF(当前执行脚本的文件名),REMOTE_ADDR,QUERY_STRING和PHP_AUTH_USER。您将在此代码库中看到sv查询的所有变量。

  1. 如果/当$ _SERVER存在时,它将在数组中查询一个变量并返回它,除非未设置该变量;否则,返回$ _SERVER。然后返回”。

您发布的代码

if (eregi('login.php', sv('PHP_SELF')))die('Access Denied');

正在将表达式'login.php'与正在执行的脚本的名称进行比较,如果匹配则退出并显示消息'Access Denied'。

答案 1 :(得分:0)

The documentation for CMSimple告诉我:

  

返回服务器变量$ name,如果已设置,则返回空字符串。