Jump to content
xt:Commerce Community Forum

Variable in $Session speichern!?


stickray

Recommended Posts

Erstmal einen herzlich schönen Tag :)

Ich versuche Seit graumer Zeit eine Produkt Sortierung zu realisieren die per $_Session einfach von Seite zu Seite weitergegeben wird.

Die Produkt Sortierung funktioniert prima, aber leider auch nur auf der Seite auf der sie aufgerufen wird.

Idee:

Einfach wenn $_GET["sortierung"] -> das in eine $_SESSION["sortierung"] speichern und bei jedem aufruf der default.php die Sortierung je nach auswahl weitergeben.

Nur bin ich drauf gekommen das wenn ich etwas in $_SESSION speichere, es bei der nähsten Seite ja gar nicht mehr aufgerufen werden kann!?

Vielleicht hat jemand ja eine Ahnung wie ich an die Sache am besten rangehen kann :)

Man könnte die Sortierung ja auch bei jedem Link anhängen nur das währe leider nicht so eine schöne Lösung :rolleyes:

Danke

Link to comment
Share on other sites

und bei jedem aufruf der default.php die Sortierung je nach auswahl weitergeben.

Wenn in der default.php $_GET['sortierung'] verwendet wird, Du das aber in der Session hast, musst Du natürlich das $_GET['sortierung'] in $_SESSION['sortierung'] abändern...

Nur bin ich drauf gekommen das wenn ich etwas in $_SESSION speichere, es bei der nähsten Seite ja gar nicht mehr aufgerufen werden kann!?

Doch, genau dafür sind Sessions ja da ;) Musst es halt nur da, wo Du's haben willst auch auslesen - am Besten mit einer vorherigen Prüfung. Ich mach sowas immer so (oder ähnlich)


$sortierung = ''; // init
if( !isset($_SESSION['sortierung']) ) { // wenn NICHT in session
if( isset($_GET['sortierung']) ) { // ...aber in get
// in session speichern
$_SESSION['sortierung'] = $_GET['sortierung'];
$sortierung = $_SESSION['sortierung'];
}
}else{
$sortierung = $_SESSION['sortierung'];
}
[/PHP]

Danach würde ich die Variable $sortierung verwenden.

...da fehlt jetzt [b]natürlich[/b] noch eine Sicherheitsprüfung - nicht, dass Dir ein böser Mensch durch Injection-Versuche im GET noch die Datenbank schrotet...

Link to comment
Share on other sites

Hi, Danke für deine ausführliche Antwort! :)

Genau in der Art habe ich das auch gemacht. Ich hab das ganze in der index.php verschachtelt statt in der default.php weil ich die Sortierung Global noch in den anderen Listen verwenden wollte, nur das Eigenartige dabei ist.

Wenn Ich:

$_SESSION['sortierung']=$_GET['sortierung'] da verwede, wird das in der default.php nicht initialisiert, aber in der default.php kann ich weiters einfach auf das $_GET['sortierung'] zugreifen.

Werde das Heute nochmal besser überprüfen, das komische ist aber wenn ich session_start(); vor der "$_SESSION" schleife aufrufe funktioniert das ganze :confused: nur is man halt auf der Seite nicht mehr angemeldet :)

Danke nochmal

Link to comment
Share on other sites

Hi, nochmal :D

Jetzt hab ich das ganze getestet und ich bin draufgekommen das die Session nach einem zweiten aufruf der Seite einfach gelöscht wird.

Sprich meine $_SESSSION['sortierung'] existiert nach dem ersten $_GET Post. Aber wenn ich zb eine Kategorie wechsel ist die $_SESSION['sortierung'] beim zweiten wechseln einfach Leehr!? :D

MFG

Link to comment
Share on other sites

  • 6 months later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...