Menü aus datei laden

  • Themenstarter Themenstarter Grüner Goblin
  • Beginndatum Beginndatum
G

Grüner Goblin

Ich will auf meiner seite mein menü so machen das ich des ich nur eine datei ändern muss damit auf jeder seite zbs der neue link im menü angezeigt wird.

ich habe versucht mit include einfach ein menü rein zu laden.
das prob ist eben das sich die seiten in verschiedenen ordner befinden. und das dan nimmer funktioniert sobald ich auf einer seite bin in einem anderen ordner.

danach habe ich versucht das
über $_GET einee variable gefüllt wird.
in dieser stand die adresse zu dem inhalt der seite.

somit wurde nur der inhalt (also der text der auf der seite zu lesen ist) über include geladen.
das hat auch einigermasen funktioniert. nur das prob ist das dadurch keine bilder zu sehen waren da diese nach dem die datei in meine index datei geladen wurde somit falsch verlinkt waren.

ich hoffe ich konte mein problem etwas deutlich machen,
und hoffe das ihr mir helfen könts

Mein ziel ist einfach das ich nur eine datei ändern mus damit das menü auf jeder seite geändert ist.


PS:. hab noch nich viel PHP erfahrung.
 
Zuletzt bearbeitet von einem Moderator:
Mhm möchtest Du nun das Link Menu über die Ordner zusammen bauen oder wie muss ich das verstehen ?
Oder meinst du das in jedem Ordner ein neues Menu liegt und Du das einbinden möchtest ?
Oder hast ein allgemeines Menu , und sobald ein neuer Link auftaucht soll der erfasst werden und von jeder weiteren Unterseite in welcher selbiges Menu ist ausgegeben werden ?

Irgendwie komm ich da nun nicht so hinterher nun :(

Ich glaube das was du suchst ist Frames faken mittels Stylesheets , gibt es hier auf Tutorials.de auch nen prima tut zu. oder Quake.net PHP Tutorial.

Da kannst dein Menu in ein Div Layer legen , und den Inhalt in ein anderen. Somit müsstest du immer nur dein Menu irgendwo reinladen dann und es würde überall gleich aussehen.

Bzw könntest du auch dein komplettes Menuinhalt auch in einer Datei ablegen. Aber dann müssten die Links immer http://www. irgendwas sein eben und dieses dann abrufen. und einbinden.Hab ich mal mittels einer TextDatei gemacht.

Man kann eine URL eingeben , diese wird dann in eine Datei reingeschrieben mit einen Trennzeichen.
Zur Ausgabe wird die Datei ausgelesen , die URL`s werden Anhand der Trennzeichen zerlegt und in die Form geschrieben das es zu richtigen Links werden.

Was wichtig wäre dafür die funktionen explode() , fgets(), fwrite(), fopen() mehr braucht man eigentlich nicht dafür.
 
Zuletzt bearbeitet:
also ich möchte eine datei haben namens menu.php und diese soll in jede seite reingeladen werden. wen ich nun eine neue seite habe möchte ich einfach die datei menu.php endern und schwubs hab ich auf jeder seite den neuen link.
mein prob ist das meine seiten in verschiedene ordnern liegen.

ich schätze mal das man des vieleicht irgendwie mit $_GET[] oder so lösen kann aber kp ich bin in php noch neu


PS:. ich habe es mal auch versucht via CSS- Layer und Div und so zu lösen da gibts aber genauso das problem das wen ich bilder rein tue das die dan falsch verlinkt sind


gehtdas überhaupt zu lösen mit PHP und MySQL?
also mein ziel ist einfach das wen ich ne neue seite dazu füge das ich nicht auf jeder seite des menü ändern mus.
 
Zuletzt bearbeitet von einem Moderator:
Ahso mach dir doch mehere Datein ,

also als Hauptdatei eine Index.php da werden alle Inhalte eingebunden

<div id="menu">
include("menu.php");
</div>
<div id="content">
include("conten.php oder was auch immer mittels switch case und $_GET[]");
</div>

Das ist das was ich angesprochen habe Frames Faken.
hier zu finden ein 3 Spalten Layout.

http://tut.php-q.net/frames.html

Die Bilder musst dann innerhalb der PHP-Datein richtig verlinken sonst gibt es klar Probleme.
Und wenn du ganz faul bist , machst dir einfach nen Ordner wo alle PHP-Datein drinne liegen , liest den Ordner aus innerhalb der Menu.php und nimmst alle Datein die *.php als Endung haben und fügst sie dort ein ;) Dann musst nichtmal was in der Menu.php ändern sondern einfach die neue Datei in den Ordner kopieren.
 
FipsTheThief hat gesagt.:
Die Bilder musst dann innerhalb der PHP-Datein richtig verlinken sonst gibt es klar Probleme.
also so wie ichs momentan hab also als wäre das bild in der index datei und net in der original datei.?
 
Nein die Index.php ist der Platzhalter für alles gesammt wo alles eingebunden wird.

Ich frage mich schon die ganze zeit was Du mit Bildern meinst ;) ich denk ich brauch einfach mal ein Beispiel um da reinzukommen , zumal du sagtest die Datein seien alle in einen unterschiedlichen Ordner etc.

Also ein wenig Quellcode oder ähnliches könnten das Verständniss deines Problems wesentlich erleichtern.
 
mit bildern meine ich sowas was mit dem html code <img src=""> geladen wird.

ok sagen wir mal
ich habe folgende dateien:
Index.php
menu.php
home.php
/site/news.php

im index wird das menu über <?php include('menu.php'); ?> geladen

im menu stehen folgende links
<a href="index.php?inhalt=home.php">Home</a>
<a href="index.php?inhalt=site/news.php">News</a>

im index wird dan eine variable gefühlt
$inhalt = $_GET[inhalt];

des weiteren steht der befehl <?php include($inhalt);?> an der stelle wo der inhalt in dei seite geladen wird (also ich habe auf der index seite tabellen und in der spalte und zeile wo es rein soll steht halt der befehl.)

das führt dazu das eben wen ich den link bei News anklicke wird ganz einfach "site/news.php" in die variable gesteckt und somit läd der include befehl site/news.php an der stelle wo es rein soll.

so habe ich es momentan. jedoch wen ich ein bild in der datei news.php rein setzte (also zbs <img src="../images/bild1.jpg">) dan wird wen ich die datei news.php einfach lade des bild richtig angezeigt. jedoch wen die datei news.php in meine index datei geladen wird (dan müste es ja eigentlich nur images/bild1.jpg heisen. dies wird aber nicht geändert und somit kann das bild nicht angezeigt werden. deshalb habe ich einfach momentan alle bilder so gemacht das der pfad so geschrieben ist als würde das bild in der index datei sein. (das gleiche ist mit flash und sonstigen sachen die in die seite geladen werden.)
und meine frage ist ob man das irgendwie hin bekommt das man des man den pfad so schreibt das des bild in beiden datein angezeigt wird.

ich hoffe ich habe es verständlich rüber gebracht.
 
Ahso das ist natürlich richtig ,

wenn deine Order Struktur so ist

HP/News/Images/bild.jpg

Im Ordner News liegt dein News Script und das aktuelle News Bildchen somit wäre der Ordner ../Images/Bild.jpg

Wenn du nun im Ordner HP das News Script startest dann wäre der neue Ordner logischerweise ../News/Images/Bild.jpg.

An deiner Stelle würde ich mir einfach nen neuen Ordner anlegen wo alle Webgrafiken reinkommen oder alle Newsgrafiken und immer auf diesen direkt verlinken mit der kompletten URL .

also <img src="http://url/WebImages/bild.jpg"> Ist zwar ziemlich trivial aber würde so hinhaun ;)
 
So nachschalg , mal fix hingesetzt und geschaut wie man das so hinbekommen könnte das es nicht immer eingetippt werden müsste.

Gestartet habe ich bei C:\www\Glump und am ende bin ich dann bei
C:\www\Galerie\Bilder\Test_Ordner

PHP:
<?php
$BildOrdner = "Galerie/Bilder/Test_Ordner";
$root = "C:\www";
$av = getcwd();
while($av != $root){
  $av = chdir("../");
}
$Bilder = explode("/", $BildOrdner);

for($i=0;$i<count($Bilder);$i++){
  if(basename(getcwd()) != $Bilder[count($Bilder)-1]){
        chdir($Bilder[$i]);
  }
}

$link = getcwd();

?>

So im Prinzip geh ich erstmal bis in das rootverzeichniss zurück , da wo das Übel begann.Und setze wechsel dann so lange die Verzeichnisse bis ich das gewünsche Verzeichniss erreicht habe. Im Prinzip funktioniert es so , dennoch fände ich es wesentlich einfacher alle Bilder einfach wo zu sammeln und dann direkt auf das Bild zu verlinken.
 
Zuletzt bearbeitet:
hä ich glaube du hast mich bissale falsch verstanden *g*

also ich kurze übersicht^^


localhost/image <---da sind alle bilder drinnen (in ordnern sortiert wie zbs: icons, picture,banner... Die demnach zbs localhost/image/icons/icon1.gif oder localhost/image/picture/picture1.jpg)

localhost/sites <---da sind meine seiten drinnen (auch in ordnern sortiert wie news, impressum, links, guestbook... Die zbs localhost/sites/news/news.php oder localhost/sites/impressum/impressum.php)

localhost <---da ist meine index seite und das menü drinnen (also localhost/index.php)
 
Zurück