mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 13:25 Benutzername: Passwort: Auto-Login

Thema: Navigation mit PHP vom 01.04.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Navigation mit PHP
Autor Nachricht
schattenjaeger
Threadersteller

Dabei seit: 03.11.2005
Ort: Kiel
Alter: 34
Geschlecht: Männlich
Verfasst So 01.04.2007 16:20
Titel

Navigation mit PHP

Antworten mit Zitat Zum Seitenanfang

Hallo Leute,
also ich bin in PHP nicht das Ass und wollte euch einmal fragen, in wie fern man folgenden Gedanken realisieren kann.

Ich habe eine Grafiklastige Seite. Grafiken verändern sich nicht, nur content verändert sich.
Meine Navigation soll Tags bekommen (Variablen?). Wenn ein Punkt angewählt wird, dann soll der Content ausgetauscht werden.

if ($navi == "1") {
include (home.html);
}
elseif ($navi =="2") {
include (home1.html);
}

Zwei fragen stehen offen:
funktioniert das mit diesem oben genannten Schema? Wenn Ja, wie gebe ich den einzellnen Navigationsbildern dann die ID's?

Schon einmal vielen dank für eure Hilfe
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst So 01.04.2007 16:58
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, vom Prinzip her eigentlich schon mal gar nicht so verkehrt...

Du hast deine index.php und setzt dort deine Links. Jedem Link übergibst du dann einen Parameter, welche Datei dementsprechend eingebunden werden soll.

Code:
<a href="index.php?site=home" title="zur Homepage">Home</a><br>
<a href="index.php?site=links" title="zur Linkliste">Linkliste</a><br>
<a href="index.php?site=impressum" title="zum Impressum">Impressum</a>


Und entsprechend diesem Parameter bindest du dann deine Dateien ein.
Um ellenlange if-Kaskaden zu vermeiden und/oder damit du einen Standardwert angeben kannst, würde ich das lieber mit einer switch-Anweisung machen.
Code:
<?php
switch ( $_GET['site'] )
{
   case "home":
      include( "home.inc.php" );
      break;
   case "links":
      include( "links.inc.php" );
      break;
   case "impressum":
      include( "impressum.inc.php" );
      break;
   default:
      break;
}
?>

Zwischen dem default: und dem letzten break; könntest noch eine include-Anweisung reinpacken.
Wenn dann deine Seite mit keinem Parameter (oder mit irgendeinem, den du gar nicht eingeplant hast) aufgerufen wird, dann wird dieser Standardwert genutzt und die entsprechende Seite eingebunden.
  View user's profile Private Nachricht senden
Anzeige
Anzeige
therapiekind

Dabei seit: 14.03.2006
Ort: In deinem Kopf
Alter: -
Geschlecht: -
Verfasst So 01.04.2007 17:04
Titel

Antworten mit Zitat Zum Seitenanfang

Schon der richtige Weg, aber ich bevorzuge dafür 'n switch-Statement, ist übersichtlicher:
Code:
switch($navi)
{
    case "1":
        include(home.html);
        break;
    case "2":
        include(home1.html);
        break;
    default:
        include(home.html);
        break;
}

Das mit den DIVs und IDs verstehe ich nicht so recht, aber ich vermute, dass du in jeder "includeten" HTML-Datei das Menü hast. Falls ja, dann einfach das Menü in die Startseite auslagern und nur den Inhalt wie oben beschrieben einfügen.
Also z.B. die index.php als komplette Seite, vereinfacht so:
Code:
<html>
<body>
<ul>
    <li><a href="index.php?navi=1">Mein</a></li>
    <li><a href="index.php?navi=2">Menü</a></li>
</ul>
<?php
switch($navi)
{
    case "1":
        include(home.html);
        break;
    case "2":
        include(home1.html);
        break;
    default:
        include(home.html);
        break;
}
?>
</body>
</html>

home.html sieht dann vielleicht so aus:
Code:
<div>
    <p>Die Inhalte</p><img src="bildchen.png alt="" />
</div>
</div>
Ohne DTD & Co, da diese sonst in der einbindenden index.php doppelt vorhanden wären.

[edit]Da war jemand schneller! *hu hu huu*[/edit]


Zuletzt bearbeitet von therapiekind am So 01.04.2007 17:49, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
schattenjaeger
Threadersteller

Dabei seit: 03.11.2005
Ort: Kiel
Alter: 34
Geschlecht: Männlich
Verfasst So 01.04.2007 17:14
Titel

Antworten mit Zitat Zum Seitenanfang

vielen dank für die schnelle Hilfe. damit komme ich auf jeden fall weiter.
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst So 01.04.2007 17:16
Titel

Antworten mit Zitat Zum Seitenanfang

Ja, liebes therapiekind ich war schneller! Grins
Und deine Version wird vermutlich bei den meisten Hostern nicht mehr funktionieren. *zwinker*
Im Normalfall wird in der php.ini (aus Sicherheitsgründen) die Einstellung register_globals auf off gesetzt.
Damit gibt es dann deine Variable $navi nicht mehr. Die müßte man sich dann über $_GET['navi'] holen.
Aber selbst, wenn es so funktionieren sollte, wäre es in jedem Fall sinnvoller, das Superglobal-Array $_GET zu nutzen. Das sollte man sich bei der Programmierung direkt angewöhnen - auch wenn es halt teilweise noch anders funktioniert.
Die Hoster, die register_globals auf on stellen, machen das ja nur damit alte Scripte noch laufen. Ist aber recht unsicher und unschön.


EDIT (Nachtrag):
Und was mir noch dazu einfällt:
Um die Links dann später ein wenig suchmaschinenfreundlicher zu gestalten, könntest du mit dem rewrite-Modul des Apache-Webservers arbeiten (mod_rewrite).
Damit hättest du die Möglichkeit, aus Links wie index.php?site=home dann home.html zu machen.
Der Server schreibt die URL dann intern um.


Zuletzt bearbeitet von rob am So 01.04.2007 17:21, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
schattenjaeger
Threadersteller

Dabei seit: 03.11.2005
Ort: Kiel
Alter: 34
Geschlecht: Männlich
Verfasst So 01.04.2007 17:26
Titel

Antworten mit Zitat Zum Seitenanfang

Darf ich dann noch mal als letztes blöd fragen, wie ich den mod_rewrite mache? Wie binde ich den dann vernünftig ein?
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst So 01.04.2007 17:30
Titel

Antworten mit Zitat Zum Seitenanfang

Das macht man mit Hilfe einer htaccess-Datei, die in deinem Server-Root-Verzeichnis abgelegt wird.
Darum solltest du dich allerdings erst kümmern, wenn du mit deiner Site soweit fertig bist.

http://de.wikipedia.org/wiki/Rewrite-Engine
http://www.modrewrite.de/
http://www.modrewrite.de/foren/index.php
http://www.aboutwebdesign.de/awd/content/1042302787.shtml


Zuletzt bearbeitet von rob am So 01.04.2007 17:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
schattenjaeger
Threadersteller

Dabei seit: 03.11.2005
Ort: Kiel
Alter: 34
Geschlecht: Männlich
Verfasst So 01.04.2007 17:40
Titel

Antworten mit Zitat Zum Seitenanfang

vielen dank für deine hilfe rob.. jetzt kann ich ohne probleme in die woche starten
  View user's profile Private Nachricht senden
 
Ähnliche Themen Navigation - IE6 + 7
[PHP, XML] Navigation...
CSS Navigation
CSS: Navigation
[CSS] DIV Navigation
navigation
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.