PHP richtig Includen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anpassen
aufrufen
befehl
beispiel
browser
code
datei
grad
header
idee
index
liegen
ordner
pfad
problem
punkt
verstehen
verzeichnis
webseite
zeigen
-
Hallo
Bin schon ne Weile am Tüfteln wegen folgendem Problem:
Hab ne Webseite in einem Unterverzeichnis meines Webspaces hier und ich bekomme einfach das dynmische PHP Menü nicht hin, weil ich wie folgt include...
(ich denke jetzt einfach mal laut, vielleicht hilft's ja... )
<?php include("menue.php"); ?>
Und im Menü (menue.php) habe ich auch Unterrubriken und von dort kann man aber nicht auf die index.php.
Geht nicht, weil:
... ich in dieser Datei eine andere Datei - aus einem ganz anderen Verzeichnis - einbinde.
Auch jegliche versuche ein Ordnerverzeichnis höher anzugeben mit...
./menue.php
bzw.
../menue.php
...sind fehlgeschlagen
Ich dachte dann, so ginge es...
<?php include($_SERVER['DOCUMENT_ROOT']."/menue.php"); ?>
Geht nicht, weil:
...das Skript ja mein Hauptverzeichnis hier auf Lima aufruft und nicht das Unterverzeichnis, wo die Webseite bzw. die menue.php liegt.
Dan habe ich versucht den Pfad entsprechend zu ändern bzw. anzupassen, was töricht war...
<?php include($_SERVER['DOCUMENT_ROOT']."/webseiten/homepage_1/menue.php"); ?>
Geht nicht, weil:
... folgende Fehlermeldung kam:
>Parse error: syntax error, unexpected T_STRING, expecting ','<
Jemand ne Idee warum es nicht funzt oder sogar ne Webseite hier von sich als Beispiel wo bzw. warum das geht, was bei mir nicht geht?
LG
Webdesignerin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich versteh nicht ganz, was du willst?!
Achso, liegt die Datei ein Verzeichnis höher oder darunter?
include 'deinVerzeichnist/menu.php';
oder
include '../menu.php';
Beitrag zuletzt geändert: 9.5.2009 12:40:28 von fvg -
Aalsooo....
Auszug aus meiner menue.php:
<li> <a href="index.php">Startseite</a></li> </ul> <ul> <li> <a href="#">Hauptmenü 1</a> <ul> <li><a href="Ordner_1/Submenue_1.php">Submenü 1</a></li> <li><a href="Ordner_1/Submenue_2.php">Submenü 2</a></li> <li><a href="Ordner_1/Submenue_3.php">Submenü 3</a></li> <li><a href="Ordner_1/Submenue_4.php">Submenü 4</a></li> </ul> </li> </ul>
In den Submenü-PHPs soll der PHP code fürs Menü rein, der einen Ordner weiter oben - im Hauptverzeichnis der Webseite - liegt.
Aber wie muss der richtige include Code lauten? Ich meine, wenn der menue.php von der index.php included ist das ja was anderes, als wenn der von Submenü 1 darauf zugreifen will (Ordnerstruktur)...
MfG
Webdesignerin
-
include() funktioniert so ähnlich als würdest Du den Code direkt in die Dateischreiben in der Du die Datei einfügst, nur mit der Ausnahme das vorher der PHP-Modus beendet wird. Sprich aus:
<? include('bla.php');?>
Wird:
<? ?>{_inhalt von bla.php_}<??>
Wenn man das beachtet kann fast nichts schief gehen. -
Hm... also eigentlich sollte dich ein
include/require "../test.php";
Ins vorherige Verzeichnis bringen.
Wobei ich mir nicht ganz sicher bin, wie das mit Hierarchie aussieht... -
Hi,
ich würde das so machen:
include('/home/webpages/lima-city/webdesignerin/html/gewünschter/Ordner/Datei.endung")
MfG
Steffen -
Warum erscheint denn "undefined" wenn ich auf einer Unterseite bin?
Die Pfade sind jetzt zwar richtig, aber die head.php wird nicht richtig included. Ich krieg die Krise! *heul*
MfG
Webdesignerin -
Vllt schreibst du uns mal, wo genau sie welche Datei befindet, denn ehrlich gesagt blicke ich da nicht mehr durch.
Was dir vllt hilft: Die Datei, die du includest wird dann von dem Ordner aus ausgeführt, in dem sich die includierende Datei befindet.
Und der UNEXPECTED T_STRING ist kein including Fehler, sondern sowas wie
$ variable = 'bla';
also ein ganz normaler Schreibfehler, den du vllt mal suchen solltest. Es könnte also durchaus sein, dass dieser Code bereits zum Erfolg geführt haben könnte, wenn du den Schreibfehler korrigiert hättest.
Liebe Grüße
- VampireSilence -
Nein, da bin ich mir sicher, ein Schreibfehler ist es nicht, bin die ganzen Dateien gerade nochmal durchgegangen.
Kann mir denn keiner sagen, was ich machen kann, sodass der Code im Submenü nicht mehr verfälscht ist und alles richtig angezeigt wird.
LG
Webdesignerin -
Also, es wäre doch sehr hilfreich, wenn du nochmal genau sagen würdest welche Datei wo liegt und wann du sie wie einbindest.
Ich hab das jetzt so verstanden:
blablabla/index.php:
include "menue.php";
menue.php:
include "../submenue.php"
Wobei submenü.php im Ordner ./ liegt.
Hab ich das richtig verstanden? -
nikic schrieb:
blablabla/index.php:
include "menue.php";
Richtig.
nikic schrieb:
menue.php:
include "../submenue.php"
Nein, nicht ganz. Die menue.php beinhaltet folgendes:
<li> <a href="index.php">Startseite</a></li> </ul> <ul> <li> <a href="#">Hauptmenü 1</a> <ul> <li><a href="Ordner_1/Submenue_1.php">Submenü 1</a></li> <li><a href="Ordner_1/Submenue_2.php">Submenü 2</a></li> <li><a href="Ordner_1/Submenue_3.php">Submenü 3</a></li> <li><a href="Ordner_1/Submenue_4.php">Submenü 4</a></li> </ul> </li> </ul>
nikic schrieb:
Wobei submenü.php im Ordner ./ liegt.
Ja. Die Submenü.php liegt einfach eine(n) Ebene/Ordner tiefer.
nikic schrieb:
Hab ich das richtig verstanden?
Scheint so!
LG
Webdesignerin -
So, und wo befindet sich das Problem nun...?
Oder eher: Was hat das mit PHP zu tun. Du bringst die Submenüs ja in einem href rein. -
Guten Abend
Das ist ja egal wie ich mein Menü gestalte, es ist ja das Problem, dass nur die index.php die menue.php und head.php finden kann (gleiches Verzeichnis), aber die Submenue.php's können das eben nicht, da sie nicht im selben Verzeichnis wie die index.php liegen.
Selbst, wenn ich meine CSS Dateien ins selbe Verzeichnis machen würde oder diese eben in jede PHP Datei einzeln einbinden würde, statt in der head.php. bleibt immer noch das Problem mit der Verzeichnisstruktur. (eine Seite kann die andere nicht aufrufen). So schlimm habe ich mich nun aber auch nicht wieder ausgedrückt!
LG
Webdesignerin
-
Mach uns mal einen Screenshot oder eine Dir List (als Baum) von deiner Verzeichnissstruktur, das ganze ist für mich einfach nur
-
Du musst in den Submenue dateien doch nur anstatt z.b. include("header.php"); das machen: include("../header.php");
Die Submenu Dateien werden doch dann im Browser aufgerufen oder?
Wenn du dann da eine CSS Datei in der header.php zum Beispiel hast, solltest du eventuell den ganzen Pfad angeben (http:// ) weil die CSS Datei sich relativ auf den Pfad der im Browser aufgerufenen Datei bezieht -
Also ich würde dir raten:
Nenne die Datei in die du includen möchtest in
bla.inc.php
und und gidann als Code
include("../bla.inc.php")
ein.
So sollte es klappen. -
Hallo zusammen
Wo ist der Unterschied zwischen bla.php und bla.inc.php?
Und warum sind die Pfade jetzt mit dem "base href" Befehl korrekt, aber wenn ich vom Untermenü z.B. die Hauptseite aufrufen will geht es nicht. Rufe ich die Hauptseite (index.php) direkt auf geht es, aber dann sagt er mir das gleiche, wenn ich die Unterseite aufrufen will - obwohl jetzt endlich die Pfade stimmen!
LG
Webdesignerin -
So also wenn ich das richtig verstehe ist der Link auf der angezeigten Seite falsch. Aber wie ist der Link denn dann. Der muss ja dann anders sein also denn den du angibst oder versteh ich da was falsch.
Ich würde dir raten mal ein Includeverzeichnis anzugeben auch wenns eigentlich sinnlos ist. Hatte damit aber auch schon öfters Probleme wenn ich das nicht definiert habe. Also wenn alle Dateien im selben verzeichnis liegen kannste folgendes machen.
<?php ini_set("include_path", "./"); ?>
-
Hmh...
...es scheint am Menü selber zu liegen. Ich habe ja der Ordnung halber eben NICHT alle Dateien im selben Verzeichnis sondern in sog. Themenordnern kategorisiert. Nun und da das includen ja so ist, als wäre die Datei direkt eingebunden, stimmen natürlich von Ordner zu Ordner einfach immer die Pfade nicht. Selbst mit base href oder Deinem Vorschlag, dikay. Auf der Startseite alles wunderbar, aber das war es dann schon auch. *heul*
Ich muss wohl mein Menü ändern. Kann mir dann jemand ein gutes Menü empfehlen, dass solche Ordnerhierarchien unterstützt (möglichst Drop Down und wo man im Menü ein Hintergrundbild, statt Farbe machen kann - wg. Button?
LG und Danke dennoch für Eure Hilfe,
Webdesignerin -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage