2017-10-15 40 views
0

PHPには新しく、相対パスと絶対パスがrequireでどのように動作するかを試してみましょう。PHPパスを必要とする/相対または絶対

/index.php
/inc/db_functions.php
/inc/config.php
/login/login.php

db_functions.phpは設定が含まれていますように

私の構造が見えます.PHP使用 require_once 'inc/config.php';

のindex.phpを使用db_functions.php含むrequire_once 'inc/db_functions.php';

ユーザーがログインしていない場合、ブラウザはlogin.phpにリダイレクトされます。 元々、login.phpはルートフォルダにあり、同じrequireをindex.phpとして1回使用しました。それは完璧に働いた。

これは独自のサブフォルダにあります。 コードは、それがdb_connect.php中のrequire_onceラインに着くまで働いていたと require_once('../inc/db_connect.php');

私が使用しますrequire_onceを変更しませんでした。

私はあることを一度login.phpで必要と変更: require_once(__DIR__.'/../inc/db_connect.php');

再びそれがdb_connect.php

にするrequire_onceに着いたとき、私は絶対パスであることをdb_connectでのrequire_onceを変更しませんでした。再びそれは失敗した。

インクルードファイルのインクルードパスが、呼び出し元ファイルの場所によって変わっているように見えますが(これはわかりますが)、より堅牢にする方法です。

+1

質問を編集して、ファイルのソースコードが含まれているようにして、エラーメッセージを書き込んでください。しかし、魔法の定数 '__DIR__'はそのトリックを行うべきです。 – Progman

+0

こんにちは。私はコードをアップロードしようとしますが、それはかなり長い行ですので、まずトリムします。また、私はエラーメッセージを受け取りません。 netbeansの下でのデバッグは、その行で停止して進みません。 – Flugan

+0

PHPスクリプトからエラーメッセージを受け取る方法については、https://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-phpをチェックする必要があります。 – Progman

答えて

0

db_functions.phpには、 を使用するconfig.phpが含まれている必要があります。 'config.php';それらは同じフォルダにあるためです。

通常、完全なパスを使用するのが最適です。

関連する問題