switch problem

schweinchendick

Grünschnabel
hi

ich bin neu hier und auch in php, ich hab folgendes prob:

ich hab eine tabelle mit spalten

links Menu, Haupteil ,rechtes menu


link zu test seite

die einzelen menus lasse ich über "switch"und "include" laden

hier der php script:

PHP:
<?php
switch ($HTTP_GET_VARS['action']) {
case start:
include 'start.php';
break;
case Wir_uber_uns:
include 'Wir_uber_uns.php';
break;
.
.
.
default:
include 'start.php';
}
?>

so das prob jetzt ist das wenn ich mir eine seite z.b "wir über uns" angeschaut hab und nun auf ein anderen menu link klick er mir wieder die "start" seite bingt, wie muss ich das umschreiben das er sich die leste seite merkt die in den hauptteil geladen war.

naja ist nicht leicht zu erklären ich hiffe aber ds man es verstehen konnte was ich mein.:rolleyes: :(
 
Ich habe gerad ein wenig auf deiner Testseite rumgeklickt. Ich denke das du vieleicht irgendwo ein Tippfehler drinnen hast, weil, wenn man auf show klickt und danach wieder auf Wir über uns, funktioniert es ohne probleme. Schau lieber mal ob die variable den richtigen inhalt hat, oder ob die zu includende Datei vielleicht anderst heißt als im Script angegeben.

tob
 
Vielleicht mit Sessions?

PHP:
<?php
session_start();

...

case "Wir uber uns":
  ...
  $_SESSION["lastmain"] = "Wir_uber_uns.php";

...

Dann bei jedem Aufruf, bei dem der Main-Teil nicht verändert wird, den Wert $_SESSION["lastmain"] includen.
 
also ich weis nicht so richtig was ich damit anfangen soll :(

hier mal der komplette script für den haupteil der seite

PHP:
<?php
switch ($HTTP_GET_VARS['action']) {
case start:
include 'start.php';
break;
case Wir_uber_uns:
include 'Wir_uber_uns.php';
break;
case Modelle:
include 'Modelle.php';
break;
case Fotoshooting:
include 'Fotoshooting.php';
break;
case WorkshopKurse:
include 'WorkshopKurse.php';
break;
case Werbung_Promotion:
include 'Werbung-Promotion.php';
break;
case Wir_suchen:
include 'Wir_suchen.php';
break;
case kontakt:
include 'Kontakt.php';
break;
case Links:
include 'Links.php';
break;
default:
include 'start.php';
}
?>

das "default:
include 'start.php'; " ist natürlich wichtig denn er muss ja eine seite in den mittel teil laden wenn ich die seite besuche, nur er soll die seite drinlassen (z.b. kontakt, oder Links, weis der geier was der user sich gerade angeschaut hat) wenn ich nur auf menus klicke um neue menus zu laden.
 
Hm, k. Nehmen wir mal an, die Rubrik Wir über uns wäre ein, die den Hauptteil verändert, die Rubrik Links ein, die nur das Menü verändert (nur zur Vereichnfachung. Pass den Rest dann einfach an).
Ps: Du musst/solltest die Werte nach dem case in Anführungszeichen stellen, sonst werden sie u.U. als Konstanten gewertet (ich weis, es geht auch ohne, ist aber sehr schlechter Stil):
PHP:
<?php
session_start();

switch ($HTTP_GET_VARS['action']) {
  case "start":
    $_SESSION["isin"] = "start.php";

    include "start.php";
    break;
  case "Wir_uber_uns":
    $_SESSION["isin"] = "start.php";

    include "Wir_uber_uns.php";
    break;
  case "Links":
    include "Links.php";

    if (isset($_SESSION["isin"])) include $_SESSION["isin"]
    else include "start.php";
    
    break;
  default:
    $_SESSION["isin"] = "start.php";

    include "start.php";
    break;
}
?>

Aber jetzt kommts mir erst: Wo includest du den Mainteil, und wo das Menü? *confused*
 
Hm, dann machs so:
PHP:
<?php
session_start();

switch ($HTTP_GET_VARS['action']) {
  case "start":
    $_SESSION["isin"] = "start.php";

    include "start.php";
    break;
  case "Wir_uber_uns":
    $_SESSION["isin"] = "Wir_uber_uns.php";

    include "Wir_uber_uns.php";
    break;
  case "shows":
    if (isset($_SESSION["isin"])) include $_SESSION["isin"]
    else include "start.php";

    break;
  default:
    $_SESSION["isin"] = "start.php";

    include "start.php";
    break;
}
?>
 
Und noch ein Tip für die Zukunft. Guck das du bei deinen Cases und Dateinamen nur Kleingeschriebenes verwendest. Wenn du dir dessen sicher bist, dann kann es auch nicht zu Problemen mit Groß- und Kleinschreibung kommen.
 
Oh Mann, du musst schon sagen, dass in Zeile 88 ein Parse Error kommt!!

Nicht einfach sagen: Es geht gar nix mehr. N Bisschen mehr Infos wären schon erforderlich.
 
Zurück