Include()
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absolute pfade
befehl
befehlen
beispiel
datei
deswegen
deutsch
eigentlichen frage
endung
gen
genau getan
inhalt
normalen datei
ordner
path
relativ
test
tippfehler
verzeichnis
weiteres einsehen
-
Hi,
ich habe eine Datei inc/test.inc (Inhalt ist PHP Code), die ich in eine Datei index.php mit include() einf?ge. Wenn ich jetzt die Datei index.php aufrufe, dann ?berpr?fe ich in der test.inc Datei, ob die Datei inc/test.inc existiert und es wird false zur?ckgeliefert.
Meiner Meinung nach sollte es ja true zur?ckliefern, da sich der Ort nicht mit include ver?ndert, auch wenn ich eine Datei in 1000 Unterordner einf?ge.
Was kann ich dagegen tun, oder was habe ich falsch gemacht?
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Wie jetzt?
Du includest eine Datei und dannach ?berpr?fst du, ob diese existiert?
Man sollte Dateien mit PHP-Code lieber als *.php abspeichern, damit niemand den Code ohne weiteres einsehen kann.
MfG Lucas -
Also du musst immer den Pfad angeben, den die zu includierende Datei von dem Verzeichnis der Datei, in die die zu includierende Datei eingef?gt werden soll, hat. Das ist nat?rlich nicht notwendig, wenn du einen genauen Pfad angibst. Ansonsten hat Lucas Recht. Mach doch daraus test.inc.php.
-
Also du musst immer den Pfad angeben, den die zu includierende Datei von dem Verzeichnis der Datei, in die die zu includierende Datei eingef?gt werden soll, hat. Das ist nat?rlich nicht notwendig, wenn du einen genauen Pfad angibst. Ansonsten hat Lucas Recht. Mach doch daraus test.inc.php.
Das ist auf keinen Fall niemals nicht falsch ;O)
Auf Deutsch:
Der Pfad zu test.inc muss immer relativ zu index.php sein. Das ist nicht notwendig, wenn du absolute Pfade verwendest.
Okay, jetzt zur eigentlichen Frage:
Man hat eine Datei im Rootverzeichnis (a.php) und included 'include/b.php'.
Wenn man nun in 'b.php' per include 'c.php' einf?gen will, wird erst in '/root/' nach 'c.php' gesucht und wenn sie dort nicht existiert, wird in '/root/include/' nach 'c.php' gesucht.
Es m?sste also folglich funktionieren, dass direkt in '/root/include/' nach 'c.php' gesucht wird, wenn sie per 'include/c.php' in 'b.php' eingef?gt wird.
Also verstehe ich nicht, farum bei dir 'false' zur?ck gegeben wird. Vielleicht liegts am Script selbst. -
Hi,
ist es nicht so, dass .php Dateien vor dem includen ausgef?hrt werden? Deswegen habe ich die Datei als .inc gespeichert, denn wenn ich z.B: im inc/ Verzeichnis nach z.B. img.gif suche, dann wird das gar nicht gefunden, wenn es im Unterordner von index.php ist.
Trotzdem finde ich es sehr seltzam, denn wenn ich in test.inc mit chdir() um einen Ordner nach hinten Springe (chdir("../")), dann funktioniert es auf einmal.
Ich habe noch keine richtige Probleml?sung gefunden.
mfg,
hr -
Also du musst immer den Pfad angeben, den die zu includierende Datei von dem Verzeichnis der Datei, in die die zu includierende Datei eingef?gt werden soll, hat. Das ist nat?rlich nicht notwendig, wenn du einen genauen Pfad angibst. Ansonsten hat Lucas Recht. Mach doch daraus test.inc.php.
Das ist auf keinen Fall niemals nicht falsch ;O)
Auf Deutsch:
Der Pfad zu test.inc muss immer relativ zu index.php sein. Das ist nicht notwendig, wenn du absolute Pfade verwendest.
Lesen?!
Wenn du das genau getan h?ttest, dann h?ttest du gemerkt das ich genau das geschrieben habe, was du auch geschrieben hast.
Also du musst immer den Pfad angeben, den die zu includierende Datei von dem Verzeichnis der Datei, in die die zu includierende Datei eingef?gt werden soll, hat.
=relativer Pfad
Das ist nat?rlich nicht notwendig, wenn du einen genauen Pfad angibst.
=absoluter Pfad
@heavyraptor
Hier mal ein Beispiel:
ordner/inc/test.inc
ordner/index.php
ordner/inc/img.gif
Wenn du nun in index.php die Datei test.inc includen willst, dann muss es so hei?ten:
include("inc/test.inc");
Wenn du in test.inc die Datei img.gif includen willst und test.inc schon in index.php eingef?gt hast, dann:
include("inc/img.gif");
Aber wie gesagt ist das alles egal, wenn du zum Beispiel http://heavyraptor.lima-city/ordner/test.inc includest. -
Die Dateien werden vor dem Includen nicht ausgef?hrt!
Include hei?t,dass der Inhalt einer anderen Datei in die Datei geschrieben wird. -
Hi,
ich hab das ganze noch mal neu geschrieben, und jetzt hat es funktioniert. Ich neheme an, dass irgendwo ein Tippfehler war.
Danke an alle.
@fflo:
So viel ich weiss werden .php-Datei vor dem Includen geparst, deswegen muss man die Endung ?ndern, wenn man das nicht will.
mfg,
hr -
Vor und nach dem Includieren kann man nicht wirklich sagen. Die Datei wird eher beim includieren geparst. Der Parser sieht den include befehl und parst dann die zu includierende Datei und macht dann mit der normalen Datei weiter, um es mal sehr ungenau auszudr?cken.^^
-
Hi,
ich denke auch, dass es so abl?uft. Jedoch wird die "incluierte" Datei in der Datei, die die Datei einbindet, geparst (oder in diesem Ordner, "in der Datei" ist vielleicht nicht richtig; auf jeden Fall so, sodass alle paths die gleichen sind, wie in dieser der Datei). Sonst w?rden n?mlich andere include-Befehle in der eingef?gten Datei nicht richtig funktionieren, weil die Datei im falschen Order ist.
mfg,
hr -
@i-spacke:
Sorry, ich habe mir da einen kleinen Spa? erlaubt. Ich habe doch gesagt, dass Du recht hast ;O)
"Das ist auf keinen Fall niemals nicht falsch" = "Das ist richtig" ;O)
Du hast Dich nur so kompliziert ausgedr?ckt.
Sei mir bitte nicht b?se. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage