如何检查服务器上的另一个脚本是否正在调用php脚本?

时间:2011-09-05 19:34:51

标签: php

我有一个脚本scripty.php

有时这个脚本会通过浏览器调用。

其他时候它会被服务器上的另一个脚本调用。

如何(安全地)检查scripty.php以查看服务器是否正在调用它?

5 个答案:

答案 0 :(得分:7)

  

以http网址

的形式

当从服务器调用脚本时,$_SERVER["REMOTE_ADDR"]变量为您提供发出请求的客户端的IP地址。

答案 1 :(得分:6)

您可以在包含脚本之前创建变量

$by_script = true;
include("new_script.php");

并在里面检查

答案 2 :(得分:2)

只是一个猜测:你想知道,如果通过浏览器调用脚本,或者从CLIp>

var_dump(PHP_SAPI);

答案 3 :(得分:1)

在任何将调用它的脚本上定义一个类似define("IN_SCRIPT")的常量,并且在scripty.php中你可以检查常量以确定它是否在另一个脚本中。

e.g。

if(defined("IN_SCRIPT")){
// We must be inside a script right now!
}

if(!defined("IN_SCRIPT")){
// We are working alone now
}

答案 4 :(得分:1)

考虑一个名为test.php的文件,这是唯一包含的代码:

echo str_replace("\\","/",$_SERVER["SCRIPT_FILENAME"]);
echo str_replace("\\","/",__FILE__);

当用户通过浏览器URL执行* test.php时,这是输出:

"C:/xampp/htdocs/test.php"
"C:/xampp/htdocs/test.php"

否则,不同((在这种情况下,another.php由浏览器URL执行,包括test.php))

"C:/xampp/htdocs/another.php"
"C:/xampp/htdocs/test.php"