2016-08-16 9 views
2

require()コマンドで奇妙な問題が発生しましたが、まったく動作せず、私に奇妙なエラーが発生します..はい、私は正しいパスを入れていることを確信しています include()include_once()require()require_once()を使っているだけでなく、相対パスとフルパスの両方を使用してみましたが、役に立たなくなりました。 ファイルの存在をテストしましたが、私には意味がありません! フォーラムでこれと同じ問題を抱えている人はいませんでしたが、$_SERVER["DOCUMENT_ROOT"]などのグローバル変数を使用してみましたが、これはまだ動作しません。php require()が相対または完全に機能しない

手順は次のとおりです。 HTMLボタン - > AJAX呼び出し "addcomments.php" - >ページは "ajax.php" が必要 - >エラー

addcomments.phpページ:

//set path 
$path = "g:/appserv/www/y4project/scripts/php/funcs/"; 

//check directory 
print_r(scandir($path)); 

//check if php file exists 
if(file_exists($path."ajax.php")) 
    echo "######### IT EXISTS!!! ##########"; 
else echo "@@@@@@ NO! @@@@@@@@"; 

//require it 
require($path."ajax.php"); 

エラー:

Array ( 
    [0] => . 
    [1] => .. 
    [2] => account.php 
    [3] => ajax.php 
    [4] => main.php 
    [5] => service.php) 

######### IT EXISTS!!! ########## 

Warning: require(1) [function.require]: failed to open stream: No such file or directory in G:\AppServ\www\y4project\scripts\AJAX\addcomments.php on line 10 

Fatal error: require() [function.require]: Failed opening required '1' (include_path='.;C:\php5\pear') in G:\AppServ\www\y4project\scripts\AJAX\addcomments.php on line 10 

私はまた、「../php/funcs/ajax.php」、同じ問題... scandir()file_exists()のような相対パスは両方のそれを見つける試みたが、require()が失敗します。

あなたのお手伝いが大変ありがとうございます。

EDIT

私は、それは確かにテストした別のテストページからそれを必要として機能を使用し、それが働いていたが、それでもによって呼び出される「addcomments.php」ページから機能していませんAJAX。

別EDIT

私もPHP require_once()require()のマニュアルをチェックし、私はまだ問題を見ることができません!

AJAXスクリプトが他のスクリプトを呼び出すことができないようなセキュリティ対策や、ある種のパスのバグである可能性がありますか?しかしそれは意味をなさない?
私はドキュメントの中でそれについて何も読んでいませんでした。
私はHTMLページを要求してもまだ動作していませんでした。

私は迷ってしまいました。..

+0

は、あなたが(代わりに/の)\、正しい大文字/小文字を試みたことがありますか?たとえば、コンピュータに名前が付けられているように、 'AppServ'を使って' appserv'を変更します。このようにするには、 'require(" G:¥AppServ¥www¥y4project¥scripts¥php¥funcs¥ajax.php "); ' –

+0

file_exists()はあまり役に立ちません。代わりに 'is_readable()'を試してください。 file_existsはロックされた銀行の金庫の中に「無料の1つ」のバスケットがあると伝えますが、実際にその無料のものを取ることはできません。 –

+0

@DanielDudas私は何もしませんでした。 – bakz

答えて

0

あなたはこの方法を使用しようとすることができます:

require dirname(__DIR__) . "/php/funcs/ajax.php"; 
+0

nope、私はAJAXコールが何かを引き起こしていることを賭けることができましたが、私はそれがまだ何かを理解することができません。 。 – bakz

+0

そして、仮説をテストするためにAJAXなしで直接ブラウザのaddcomments.phpを開こうとしてください。 – YetiCGN

+0

両方のファイルから 'var_dump(__ DIR __);'の結果を共有できますか? –

関連する問題