PHP SESSION Problem

pchilfe

Erfahrenes Mitglied
Liebe Freunde,

Ich habe folgendes Problem und benötige wie immer euere Hilfe.

In einem Onlineshop können Kunden sich registrieren und einlogin.
Nach dem Login eines Kunden wird ein Session gestertet:

Code:
session_start();
session_register('UserName');
$_SESSION['UserName'] = ''username';
$_SESSION['UserID'] = 'userid';

Nun sieht der Kunde eine Liste vieler Produktnamen.
Klickt man auf einem beliebigen Produkt wird ein Fenster window.open()geöffnet.
Das Fenster zeigt alle Informationen des Produktes an.

Der Produktname und die ProduktID werden an Fenster vermittelt.

Im neuen Fenster wird der Produktname und ProduktID in Session-Variablen gespeichert.

Code:
$_SESSION['ProduktName']= 'produktname';
$_SESSION['ProduktID'] = 'produktid';

Anhand die SESSION-Variablen arbeiten viele PHP-Scripte für Bestellung, Reservierung .... usw.

Mein Problem ist es:

Wenn der Kunde mehrere Produkte anklickt (es werden mehrere Fenster geöfnet),
so werden die SESSION-Variablen $_SESSION['ProduktName']
und $_SESSION['ProduktID'] mit dem Produktname und ID, das zuletzt anklickt wurde.

Hat der Kunde zum Beispiel 5 Fenster, so zeigen alle Fesnter das gleiche Produkt.

Ich möchte aber das jedes neu geöffnetes Fenster seine eigene SESSION-Variablen $_SESSION['ProduktName']
und $_SESSION['ProduktID'] behählt, unabhängig wieviele Fenster werden geöffnet.

Ich weiss nicht wie ich das mache. Ich habe alles ausprobiert.

Ich verwende PHP4.0 und die session.auto_start = 1.

Bin dankbar für jede Hilfe.

Gruß ...
pchilfe
 
Hallo!

Eine Lösung wäre $_SESSION['ProduktName'] und $_SESSION[ProduktID] zusammenzufassen und zu verschachteln: der Array müßte dann so aussehen:

PHP:
$_SESSION['produkte'] = array("ProduktID" => "Produktname");

Dabei gehe ich davon aus dass Deine ProduktID eindeutig ist.

Bei drei Produkten sieht das dann so aus:

$_SESSION['produkte'] = array(
[PID1] => "ProduktName",
[PID2] => "ProduktName",
[PID3] => "ProduktName"
);

Damit kannst Du jedes einzeln über $_SESSION['produkte'][PID] ansprechen.

Grüße

Martin
 
ich speichere die Produkat-Informationen in der Sitzung, weil es einige PHP-Scripte gibt, die von JS-Datei aufgerufen werden und daher benötige die Session-vatiablen um die Produktinformationen zu lesen.

//EDIT

ja Produktname und Produkte-ID sind in der Datenbank eindeutig.
ich werde gleich die Array-Lösung ausprobieren.
 
Hallo Martin,

Ich habe deine Lösung initialisiert. Leider immer noch das gleiche Problem.
Es werden zwar alle Produktinformationen im Array gespeichert. Aber
Die $_SESSION['produkte'][PID] -Variable wird ersetzt durch die zuletzt aufgerufene Daten.

Es sei denn, dass ich auf einzelne Array-Zellen zugreife. Aber woher soll ich wissen, welches Produkt der Kunde gerade anschaut.

Ich kann per link die Produkt-ID an weitere PHP-Scripte vermitteln. Das Problem ist, dass ich bei der Programmierung viele Javascripte und JS-Programme verwendet habe, die andere PHP-Scripte aufrufen und es ist schwer die Produkt-ID hin und her leiten.

Hat jemand vielleicht eine Idee?

Gruß ...
pchilfe
 
Zurück