如何从浏览器禁用php页面

时间:2010-07-06 20:22:59

标签: php

我正在编写一个我希望从Web访问禁用的PHP脚本(我会要求用户将其从Web根目录移出并通过CLI执行,但您永远不知道他们是否会听!)

如果浏览器请求页面死亡,是否会出现一个简单的功能?

感谢任何想法。

6 个答案:

答案 0 :(得分:6)

您可以使用php_sapi_name()测试脚本是否通过CLI运行。

在HTTP服务器上运行时,它可以返回一大堆不同的可能值 - 很难在那里做出可靠的区分 - 但CLI似乎只有一个可能的返回值:cli

如果您正在寻找通用解决方案,请务必阅读下面的评论主题,以获取有关潜在问题的详细讨论。

答案 1 :(得分:4)

  

'PHP_SELF'的文件名   目前执行脚本,相对   到文档根目录。例如,   $ _SERVER ['PHP_SELF']在脚本中   地址   http://example.com/test.php/foo.bar   将是/test.php/foo.bar。该    FILE 常量包含当前的完整路径和文件名(即   包括)文件。如果PHP正在运行   命令行处理器这个变量   包含自PHP以来的脚本名称   4.3.0。以前它不可用。

http://www.php.net/manual/en/reserved.variables.server.php

答案 2 :(得分:1)

我不是PHP专家,但您可以检查$ _SERVER变量吗?

答案 3 :(得分:0)

您可以使用php-sapi-name函数来检测Web服务器或cli接口是否请求了脚本。

答案 4 :(得分:0)

$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) != 'cli') {
    die "You are not using CLI".PHP_EOL;
}

答案 5 :(得分:0)

你可以使用php-sapi-name,或者你可以使用预定义的常量,这个常数稍微快一点(虽然你从来没有注意到!)

<?php
if(PHP_SAPI != 'cli') exit;
// continue