wie sehen deine links denn aus? home müsste dann etwa so aussehen: index.php?inhalt=home
Inhalt über variable Laden
-
-
(der code ist von dir)lösch mal das target raus, brauchst du nicht.
ZitatBendOr
nichts gegen deine Variante, aber ich kam da leider nicht so draus. und habe es jetzt mit dieser variante gemacht.der unterschied von deiner zu bend0rs variante ist, dass bend0rs einfach prüft ob die datei die aufgerufen worden ist besteht, wenn ja wird sie includet. bei deiner schaut er jedesmal ob du einen entsprechenden "case" beim switch hast - wenn ja folgt er der anweisung.
der vorteil bei bend0r ist, wenn du eine neue unterseite erstellst, musst du an der php datei da nichts ändern, bei der switch variante schon.ein vorteil der switch variante ist, dass man bei einer spezifischen seite zb. noch eine session starten kann, was abfragen kann oder so. kann man zwar bei bend0rs auch noch einbauen..
code erklärung:
Code
Alles anzeigen// prüft ob der GET Parameter Inhalt hat oder nicht if(isset($_GET['page'])) { // Prüft den GET Parameter auf verbotene Strings, mit denen man zb. das Verzeichnis wechseln könnte if (strpos($_GET['page'], '://') !== FALSE || strpos($_GET['page'], '../') !== FALSE) { die('Illegal string'); // Fehlermeldung } // Prüft ob die nun aufgerufene Datei überhaupt existiert if(file_exists("includes/".$_GET['page'].".php")) { // wenn ja -> wird sie includet include("includes/".$_GET['page'].".php"); } else { // ansonsten wird einfach die startseite angezeigt include("includes/index.php"); } } else { // hier ebenfalls include("includes/index.php"); }
mit der variante gehst du nicht auf jeden "fall" einzeln ein, sondern behandelst einfach alle automatisch und gleich.
hoffe das hilft dir weiter.
so long
so long
-
ja genau so habe ich die links gemacht. aber leider geht es so wie ich gesagt habe.
wenn du dich davon überzeugen möchtest.
https://www.forum-hilfe.de/www.2007.ferronato.ch/index.phpprofil ist mit messen1.php verlinkt und sollte im weissen teil auftauchen.
viel spass
ich weis der code ist nicht der beste und ich muss ihn noch etwas überarbeiten aber es sollte klappen. -
aaalso, ich hab mir mal den quelltext angeschaut, wirdklich verdammt durcheinander...
du öffnest insgesamt 3 mal einen body-tag in einem dokument, 1 mal soll/muss/darf man
so inetwa solltest du mit dem includ system arbeiten:
index.php:
PHP
Alles anzeigen<html> <head> <titel>Homepage</titel> </head> <body bgcolor="#c0c0c0"> <a href="index.php?page=index>Index</a> <a href="index.php?page=profil>Profil</a> <a href="index.php?page=irgendwas>Was anderes</a> <?php $mainpage = true; if(isset($_GET['page'])) { if (strpos($_GET['page'], '://') !== FALSE || strpos($_GET['page'], '../') !== FALSE) { die('Illegal string'); } if(file_exists("includes/".$_GET['page'].".php")) { include("includes/".$_GET['page'].".php"); } else { include("includes/index.php"); } } else { include("includes/index.php"); }; ?> </body> </html>
includes/index.php:
PHPWillkommen auf meiner Homepage! <?php echo "php geht hier auch!"; ?> Schau dich doch einfach mal um</p>
includes/about.php:
includes/irgendwas.php:
so oder so ähnlich solltest du das machen, nur 1 mal html&body tags benutzen, auf deiner index und bei den eigebundenen seiten weglassen, leg einfach mal die dateien an und probier rum dann sollte es gehen =)
phore hat das prinzip ja vorhin wunderbar erklärt -
deine links sind momentan falsch gesetzt.... du sollst nicht auf die inhalt.php verlinken sonder auf die index.php
-
So ich habe es glaube ich fast, geschafft.
jetzt habe ich noch 2 probleme 1. der Inhalt überläuft in der höhe zum Teil den content teil. kann ich das irgendwie anpassen lassen? oder muss ich das so machen, dass ich denn Ganzen Rahmen immer neu lade. so dass alles was unterhalb des menüs ist neu geladen werden muss? und so dem Rahmen immer die grösse mit gebe.und das 2. ist, dass die Bestellformulare vor der navigation stehen. ich nehme an dass es an der Rasterebene liegt. ich denke mir dass es besser ist wenn ich das ganze in einer Tabelle mache. stimmts?
besten Dank für die Hilfe.
-
Zitat von bambid
So ich habe es glaube ich fast, geschafft.
jetzt habe ich noch 2 probleme 1. der Inhalt überläuft in der höhe zum Teil den content teil. kann ich das irgendwie anpassen lassen? oder muss ich das so machen, dass ich denn Ganzen Rahmen immer neu lade. so dass alles was unterhalb des menüs ist neu geladen werden muss? und so dem Rahmen immer die grösse mit gebe.das hat nun nichts mehr mit php zu tun, da ist dein layout einfach nicht optimal gecodet. hab jetzt keine zeit oder lust das alles anzuschauen, aber wahrscheinlich musst du einfach dem inhalt container height: auto; verpassen und etwas padding-bottom geben. dann musst du schauen ob du in den include dateien wirklich nur den content hast. wenn du dort noch layout code drin hast musst du das da rausbringen. in den include dateien sollte nur ein <div> container sein mit dem inhalt. der layout code muss in der index.php stehen.
Zitat von bambidund das 2. ist, dass die Bestellformulare vor der navigation stehen. ich nehme an dass es an der Rasterebene liegt. ich denke mir dass es besser ist wenn ich das ganze in einer Tabelle mache. stimmts?
ich habe kA was du meinst..?
Zitat von bambidich denke mir dass es besser ist wenn ich das ganze in einer Tabelle mache. stimmts?
nein! tabellen + php ist nicht praktisch. so wie du das hast ists gut, bleib dabei und lerns einfach richtig. wenn du sauber codest hast du mit css basierten layouts (fast) keine probleme und bist später (wenn der php code komplexer wird) viel freier.
so long
-
ok danke das habe ich mir gedacht, dass dies nicht so einfach geht.
ich habe aber noch ein weiteres problem. und zwar habe ich zwei formulare, die leider nicht mehr funktionieren. da hätte ich doch lieber die erste version genommen! oder wie kann ich die formulare doch noch versenden.
besten Dank für die rasche antwort.wegen dem Formular welches mit dem Menü nicht harmoniert, schaue doch bitte mal die produktebestellung an und dann versuchst du unter "Maschinen", "Downloads" auszuwählen. und wenn du dies versucht hast machst du das selbe im Index.php
-
Zitat
ich habe aber noch ein weiteres problem. und zwar habe ich zwei formulare, die leider nicht mehr funktionieren. da hätte ich doch lieber die erste version genommen! oder wie kann ich die formulare doch noch versenden.
logisch kannst du das. am einfachsten machst du für jede formular datei eine verarbeitunsdatei und includest die. also wenn du zb. bestellen.php includest, includest du in der datei nochmal eine datei, zb. ./formulare/bestellen.php - und dort fragst du ganz normal ab ob das fomular abgeschickt worden ist (if ($_POST['submitname'] == 'submitvalue')), verarbeitest es alles und gibst eine meldung aus.
Zitatwegen dem Formular welches mit dem Menü nicht harmoniert, schaue doch bitte mal die produktebestellung an und dann versuchst du unter "Maschinen", "Downloads" auszuwählen. und wenn du dies versucht hast machst du das selbe im Index.php
hat auch nichts mit dem php code zu tun, musst mal schauen wie du das lösen kannst, ich weiss nicht wie du dein menu gemacht hast.
so long
-
-
nein - musst gar kein action angeben, nur method. target und name brauchts auch nicht.
so long
-
ok das habe ich auch versucht. doch leider sehe ich jetzt wieder nur die Indexseite. das Formular wird nun so versendet. Wie soll nun mein externes PHP-versand-Skript wissen dass es diese Daten übernehmen muss.
Ich probiere noch etwas herum, denn ev. komme ich ja selbst drauf. aber ich bin sicherlich um jede hilfe Froh.
Das kommt mir irgendwie komisch vor.
besten dank für die Antwort.
-
Zitat von bambid
Wie soll nun mein externes PHP-versand-Skript wissen dass es diese Daten übernehmen muss.
ganz normal - abfragen ob das formular abgesendet wurde, bzw. ob die felder ausgefüllt sind. evtl. solltest du mal eine pause einlegen und dich etwas mit php beschäftigen - sowas sind allgemeine, grundlegende kenntnisse.
so long
-
Ja ich habe es Hinbekommen. habe einen grundlegenden Fehler gemacht. ich bin Via dem Skript von BendOr dabei muss ich das ganz normal verlinken, und siehe da es klappt wunderbar. da bin ich froh. jetzt kann ich langsam mit dem Inhalt beginnen.
besten Dank für eure Hilfe.
Ich bin froh solch Hilfsbereite Leute gefunden zu haben. -
So also jetzt habe ich es hinbekommen. und jetzt habe ich noch ein kleines Problem. wenn jemand via google auf eine unterseite kommt, dann wird er mit dieser verlinkt. kann ich per php irgendwie sagen, dass er dann alles laden soll? oder muss ich das per JS machen?
Meine Idee war, dass ich beim laden Prüfe wie die URL aussieht, und dann soll er wenn die URL keine page angabe hat, die entsprechende Seite laden. index.php?entsprechendeseite.php
ist dies möglich?
besten Dank für die Hilfe.
-
deine idee ist genau richtig
du könntest via php die url auslesen, und prüfen auf welcher seite er ist... wenn nicht index.php dann leitest du per header einfach an die richtige adresse weiter
-
-
-
ja und dies mache ich nun in jede php Datei im includes ordner? und nehme anstelle von inhalt-->page und das impressum ersetze ich mit der jeweiligen Seite?
Stimmts?
-
Leider geht dies nicht. ich bekomme folgende Meldung:
Warning: Cannot modify header information - headers already sent by (output started at /home/ferronat/public_html/2007/includes/produkte.php:2) in /home/ferronat/public_html/2007/includes/produkte.php on line 3
Warning: Cannot modify header information - headers already sent by (output started at /home/ferronat/public_html/2007/includes/produkte.php:2) in /home/ferronat/public_html/2007/includes/produkte.php on line 4
Warning: Cannot modify header information - headers already sent by (output started at /home/ferronat/public_html/2007/includes/produkte.php:2) in /home/ferronat/public_html/2007/includes/produkte.php on line 5
was habe ich falsch gemacht?
-