PHP防止浏览器直接访问文件
很多时候,出于安全等因素考虑,我们的程序中某些文件不想被用户在浏览器中直接访问,可以用以下方法处理一下,以 config.php 为例。
方法一:定义变量判断
在调用 config.php 的外部代码中,定义一个标识变量,如下:
define('IS_INC', TRUE);
然后在 config.php 中进行判断:
if(!defined('IS_INC')) { exit('Please do not load this page directly. Thanks!'); }
方法二:URL判断
在 file.php 的头部添加如下代码:
if (isset($_SERVER['SCRIPT_FILENAME']) && 'config.php' == basename($_SERVER['SCRIPT_FILENAME'])) die ('Please do not load this page directly. Thanks!');
注释:
$_SERVER["SCRIPT_FILENAME"] 获取浏览器请求URL中文件的完整路径;
basename($_SERVER["SCRIPT_FILENAME"]) 获取页面文件名 config.php ,与 $_SERVER["SCRIPT_NAME"] 相同。
在上述 if 判断语句中,如果浏览器URL中执行的文件名与 config.php 一致,也就是说浏览器直接访问了该文件,执行 die……