Pfad Problem

matzseesi

Erfahrenes Mitglied
Hi Leute

Was mache ich falsch dass der PHP Parser bei ../ keinen Ordner höher geht sondern immer noch von dem Ordner ausgeht wo die Datei liegt?

Ich habe eine Datei in inc/kernel/ liegen. Nun sollte diese Datei von einer die im inc/module/public/register/ Ordner liegt includiert werden. Da ich recht gerne immer vom Root ausgehe (htdocs root) gehe ich vier ordner rauf und dann von dort wieder zwei rein oder bin ich da falsch

Diese Fehlermeldung kommt:

Code:
Warning: main(../../../../inc/kernel/mainfunctions.inc.php): failed to open stream: No such file or directory in D:\web\htdocs\server\V40\inc\module\public\register\register_post.inc.php on line 3
 
Zuletzt bearbeitet:
Versuch es doch einfach mal mit dem Kompletten Pfad.

Linux beispiel: /var/www/htdocs/deine/ordner/struktur/
Win Beispiel: X:/wwwroot/deine/ordner/struktur/

Gruß Mirko
 
Ich nehme auch immer den ganzen Pfad, um das Problem zu umgehen. Das ist vor allem für grössere Projekte einfacher zu handhaben.

PHP:
include($_SERVER['DOCUMENT_ROOT']."/inc/kernel/mainfunctions.inc.php");
 
hmm

aber das ist ja voll dumm wenn ich bei jeder Pfad angabe jetzt dieses Document Root vorlegen muss!

Nebenbei funktioniert des auch nicht. Er schreibt mir folgende Meldung:

Code:
Warning: main(D:/web/htdocs/server/V40/inc/kernel/mainfunctions.inc.php): failed to open stream: No such file or directory in D:\web\htdocs\server\V40\inc\module\public\register\register_post.inc.php on line 3

Warum geht des nit ohne? hat jemand eine Ahnung?

Grüße Posseidon
 
Zuletzt bearbeitet:
Weil du ein gewisses document root hast und include() die Datei immer dort ausführt wo sie auch includiert wird.

Siehe Php.net -> [phpf]include[/phpf]

Gruß Mirko
 
Definiere dir DOC Root einfach über define('ROOT', $_SERVER['document_root']); als Konstante, dann
macht's nicht SOVIEL Arbeit.
 
ok

Document Root ist das was bei der PHP.ini Datei bei doc_root steht... oder?

also in meinem Fall D:\web\htdocs\server
sodala beim apache Server ist das document_root das selbe Verzeichnis.

Normal muss das doch funktionieren wenn ich dem Parser sage er soll mit ../ jeweils ein Verzeichniss raufhüpfen und dann wieder mit der Pfadeingabe reingehen oder?

Desweiteren sollte ich noch klarstellen dass der gesamte Pfad zu dieser Seite dann D:\web\htdocs\server\V40 beträgt also zu der functions datei die includiert werden soll gehts dann so D:\web\htdocs\server\V40\inc\kernel\mainfunctions.inc.php

Sonst noch ideen... des mit dem $_SERVER['DOCUMENT_ROOT'] haut auch nicht hin

Grüße Posseidon
 
Und die Fehlermeldung...Dein Pfad stimmt noch nicht. Schau Dir doch mal den Pfad in der Fehlermeldung an und sieh nach, wo die Datei liegt!

Oh ja, und in mainfunctions.inc.php scheinst Du nochmal zu inkludieren...und darauf bezieht sich Deine Fehlermeldung.

Fehlermeldungen kann man übrigens als Hinweis für eine Lösung benutzen und nicht gleich als "oh, so geht das nicht, ich brauche einen anderen Weg" abstempeln.
 
Zuletzt bearbeitet:
hmm

@ jenno

1.) In mainfunctions wird nichts mehr inkludiert da stehen nur 3 funktionen drinnen die mir einen String überprüfen!
2.) versteh ich diese Fehlermeldung nicht ganz... da ich auf anderen Servern mit ../ immer einen Pfad höher gesprungen bin und bei meinem geht das nicht? Vielleicht ist das nur eine PHP.ini Einstellung

3.)
Fehlermeldungen kann man übrigens als Hinweis für eine Lösung benutzen und nicht gleich als "oh, so geht das nicht, ich brauche einen anderen Weg" abstempeln.
Genau das hab ich ja vor deswegen wüsste ich ja gerne warum dies nicht funktioniert! bzw. vielleicht funktionierts ja und ich hab nur einen kleinen Denkfehler

Code:
Warning: main(../../../../inc/kernel/mainfunctions.inc.php): failed to open stream: No such file or directory in D:\web\htdocs\server\V40\inc\module\public\register\register_post.inc.php on line 3

Ich versteh nicht ganz warum er trotz meiner ../ in dem danach angegebenen Ordner sucht obwohl er eigentlich viel höher suchen sollte!
 
Ich denke mal, dass schon "irgendwo hingegangen wird", allerdings noch nicht dorthin wos hingehen soll. Und gerade weil das mit ../ mitunter sehr unübersichtlich werden kann, finde ich die andere Variante mit einem absoluten Pfad persönlich besser.

Hm, sieht nach suchen und probieren aus!

Irgendwo muss das
PHP:
D:/web/htdocs/server/V40/inc/module/public/register/register_post.inc.php

doch herkommen! (oops, oder ist das die Datei in der du das include drin hast?)
 
Zuletzt bearbeitet:
Zurück