6

PHP を利用した CMS Web サイトを持っています。database.phpPHP スクリプトに含めたいと思います。database.php は config フォルダーにあり、db 接続の詳細 (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

スクリプトへの直接アクセスはありません。

の最初の行は次の行database.phpです。

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

CMS が何らかの形で構成ファイルを「保護」しているため、構成ファイルを含めることができないと推測しています。「スクリプトへの直接アクセスなし」とは何ですか? Google は、この機能を追加しようとしている人々の例をたくさん教えてくれます。削除したいです。可能?おそらく?PHP に database.php へのアクセスを許可するにはどうすればよいですか?

4

2 に答える 2

8

これを行うための基本的な方法は、アプリケーションのどこかに (database.php をロードする前に) 次のような行があります。

define( 'APPLICATION_LOADED', true );

database.php では、これに対して次のようなチェックが実行されています。

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

database.php とそれに含まれるファイルを調べて、スクリプトが直接アクセスされているかどうかを確認する方法を判断します。次に、そのファイルをスクリプトに含めたい場合に必要な条件を模倣できます。

于 2013-08-22T15:21:45.570 に答える