6

私は自分のサイトを保護するために、簡単な既成の認証ツールを使用しています。このツールでは、このコード行をすべての.phpページの上部に適用する必要があります。Auth.phpはルートレベルにあります。

<?php ${(require_once('Auth.php'))}->protectme(); ?>

このコード行を、サブフォルダー内のファイルを含むすべてのファイルに追加できるようにする必要があります。しかし、phpのrequire_onceに示されているメソッドを適用して、protectme()と一緒に常に絶対的にリンクされるようにする方法がわかりません。働き。

どんな啓蒙も大歓迎です。

乾杯。

4

7 に答える 7

6

変数を絶対パスに設定します。$ _SERVER ['DOCUMENT_ROOT']は、サーバーのルートパスを格納するPHPグローバル変数です。残りのパス情報をスクリプトに挿入するだけです。たとえば、Webサイトが/ var / www /に存在し、スクリプトが/ var / www / scriptsに存在する場合、次のようにします。

$path = $_SERVER['DOCUMENT_ROOT'] . '/scripts/Auth.php';
require_once($path);
于 2012-03-15T19:30:20.003 に答える
2

相対パスを使用してアクセスできます。

1つ上のレベル:../Auth.php

2つのレベルアップ:../../Auth.php

于 2012-03-15T19:25:48.417 に答える
2

php.iniを変更して、インクルードパスをその(他のすべての)インクルードファイルへのパスに変更する必要があります。次に、自分の場所に関係なく、すべてのページにパスなしでそれらを含めることができます。

詳細

于 2012-03-15T19:27:07.903 に答える
1

ルートレベルのディレクトリをに追加しますinclude_path-PHPが残りの作業を行います。複雑な変数や定数などはありません。

于 2012-03-15T19:27:07.793 に答える
1

すでに述べたすべてに加えて、すべての一般的な機能を一元化することをお勧めします。アプリケーションに必要なすべてのインクルードを含むcommon.phpのようなファイルを作成し、すべてのスクリプトからそれをインクルードします。

また、相対インクルードを実行するための優れた方法は、関数をマジック定数dirname()と組み合わせて使用​​することです。__FILE__例えば:

require_once dirname(__FILE__) . '/../lib/common.php';
于 2012-03-15T19:45:07.517 に答える
0

php.iniにアクセスできない場合は、以前にこのようなものを使用しました

include $_SERVER['DOCUMENT_ROOT']."/"."include_me.php";
于 2012-03-15T19:28:53.890 に答える
0

サイト全体の変更であるため、最も簡単な方法は、のインクルードパスの最初にディレクトリを追加することphp.iniです。

変更できない場合は、インクルードパスに追加するための他のオプションがいくつかありphp.iniます。

于 2012-03-15T19:29:03.923 に答える