加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用include时无法直接访问脚本

发布时间:2020-12-13 17:45:36 所属栏目:PHP教程 来源:网络整理
导读:我有一个 PHP驱动的CMS网站.我想在 PHP脚本中包含database.php. database.php位于config文件夹中,并具有数据库连接详细信息(pass,db_name等). 这是脚本: ?php echo __DIR__ ."br /br /"; //make sure your assumptions on directories and path are correct
我有一个 PHP驱动的CMS网站.我想在 PHP脚本中包含database.php. database.php位于config文件夹中,并具有数据库连接详细信息(pass,db_name等).

这是脚本:

<?php 
  echo __DIR__ ."<br /><br />"; 
  //make sure your assumptions on directories and path are correct for the 
  //include below

  include '../application/config/database.php';

?>

运行脚本,我收到此消息:

/Applications/XAMPP/xamppfiles/htdocs/tslocal/textbook_scripts

No direct script access.

在database.php的第一行是这一行:

<?php defined('SYSPATH') or die('No direct script access.');

我猜这个CMS已经以某种方式“保护”了配置文件,这阻止了我将其包含在内.什么是“无直接脚本访问”?谷歌为我提供了许多寻求添加此功能的人的例子.我希望将其删除.可能?可能性有多大?我怎么告诉PHP让我访问database.php?

解决方法

解决这个问题的基本方法是在应用程序的某个地方(在加载database.php之前),有一条线路:

define( 'APPLICATION_LOADED',true );

在database.php中有一个针对此执行的检查,类似于:

if( !defined('APPLICATION_LOADED') || !APPLICATION_LOADED ) {
    die( 'No direct script access.' );
}

查看database.php及其包含的任何文件,以确定它是如何检查脚本是否被直接访问.然后,如果要在脚本中包含该文件,则可以模拟必要的条件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读