Stanload: Sessions

Hallöchen,

ich hätte ein kleines Problemchen, fange aber erst einmal vorne an *g*.

Ich möchte auf bestimmten Seiten es ermöglichen über einen "Zurück"-Link auf die vorherige Seite zu gehen. Da es bei mir nicht so recht mit history.back[] bzw. history.go[] klappen wollten, dachte ich mir, mache ich es doch einfach per Sessions.

Realisiert habe ich folgendes:
eine Seite, welche sich durch Klick auf diversen Links wieder selber aufruft, jedoch mit einem gefüllten $_GET-Paramater, so dass ich im Coding weiß, um welchen Fall es sich handelt.

Ich dachte mir nun, merk Dir einfach die alte URL mit $_SERVER['REQUEST_URI'] in einer Session-Variablen und beim nächsten Aufruf dient der Inhalt für den Aufbau des Zurück-Links.

Ausschauen tut es nun wie folgt:

  
session_start();  
  
// Ergebnisseite  
if(!empty($_GET['ide']))  
{  
 $id_event = intval($_GET['ide']);  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
  
 $_SESSION['ALT'] = parse_url($_SERVER['REQUEST_URI']);  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
}  
  
// Porträtseite  
elseif(!empty($_GET['idp']))  
{  
 $id_person = intval($_GET['idp']);  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
  
 $_SESSION['ALT'] = parse_url($_SERVER['REQUEST_URI']);  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
}  
  
// Startseite  
else  
{  
foreach (parse_url($_SESSION['ALT']) as $key => $val)  
{ echo "Feld-ALT $key hat den Wert: $val<br>"; }  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
  
 $_SESSION['ALT'] = parse_url($_SERVER['REQUEST_URI']);  
  
 foreach (parse_url($_SESSION['ALT']) as $key => $val)  
 { echo "Feld-ALT $key hat den Wert: $val<br>"; }  
}  

Eigentlich dachte ich, dass zumindest bei den Nicht-Startseiten etwas in $_SESSION['ALT'] (natürlich im echo vor der Zuweisung) stehen sollte, aber dem ist nicht so.

Hat vllt. wer eine kleine dezente Idee für mich :-)?

Bis denn

Stanload

  1. Hi,

    Eigentlich dachte ich, dass zumindest bei den Nicht-Startseiten etwas in $_SESSION['ALT'] (natürlich im echo vor der Zuweisung) stehen sollte, aber dem ist nicht so.

    Du hast überhaupt nicht kontrolliert, ob etwas in $_SESSION['ALT'] drinsteht.
    Was du eventuell kontrolliert hast, ist das Ergebnis der Anwendung von parse_url auf $_SESSION['ALT'].

    Hat vllt. wer eine kleine dezente Idee für mich :-)?

    Dadurch, dass du parse_url doppelt anwendest, kannst du nicht erwarten, dass da noch sonderlich viel brauchbares herauskommt.

    MfG ChrisB

    --
    Light travels faster than sound - that's why most people appear bright until you hear them speak.
    1. Hallöchen,

      Dadurch, dass du parse_url doppelt anwendest, kannst du nicht erwarten, dass da noch sonderlich viel brauchbares herauskommt.

      So, hab es noch einmal überarbeitet und auf meinem Portablen Server läuft alles, wie ich es mir vorstelle, nur auf dem Webserver leider nicht.

      Ausschauen tut es nun wie folgt

        
      session_start();  
        
      // Ergebnisseite  
      if(!empty($_GET['ide']))  
      {  
       $id_event = intval($_GET['ide']);  
        
       $session_alt = $_SESSION['NEU']['query'];  
        
       if(!empty($session_alt))  
       { echo "<p>\n<center>\n<a href=\"index.php?".$session_alt."\">zur&uuml;ck</a>\n</center>\n</p>\n"; }  
       else  
       { echo "<p>\n<center>\n<a href=\"index.php".$session_alt."\">zur&uuml;ck</a>\n</center>\n</p>\n"; }  
        
       $_SESSION['NEU'] = parse_url($_SERVER['REQUEST_URI']);  
      }  
        
      // Porträtseite  
      elseif(!empty($_GET['idp']))  
      {  
       $id_person = intval($_GET['idp']);  
        
       $session_alt = $_SESSION['NEU']['query'];  
        
       if(!empty($session_alt))  
       { echo "<p>\n<center>\n<a href=\"index.php?".$session_alt."\">zur&uuml;ck</a>\n</center>\n</p>\n"; }  
       else  
       { echo "<p>\n<center>\n<a href=\"index.php".$session_alt."\">zur&uuml;ck</a>\n</center>\n</p>\n"; }  
        
       $_SESSION['NEU'] = parse_url($_SERVER['REQUEST_URI']);  
      }  
        
      // Startseite  
      else  
      {  
       session_unset();  
        
       $_SESSION['NEU'] = parse_url($_SERVER['REQUEST_URI']);  
      }  
      
      

      $_SESSION['NEU'] gibt etwas aus, $session_alt ist leider leer.

      Bis denn

      Stanload

      1. Hi,

        So, hab es noch einmal überarbeitet und auf meinem Portablen Server läuft alles, wie ich es mir vorstelle, nur auf dem Webserver leider nicht.
        [...]
        $_SESSION['NEU'] gibt etwas aus, $session_alt ist leider leer.

        Dann überprüfe, ob die Übernahme der Session-Daten in die nächste Scriptinstanz überhaupt funktioniert, und wenn nicht, checke die Übergabe der Session-ID.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.