php: Sessions?

  • #1
G

groovesurfer

Bekanntes Mitglied
Themenersteller
Dabei seit
28.02.2003
Beiträge
352
Reaktionspunkte
0
Hi hi,

kann mich vielleicht jemand über sessions aufklären? Habe mir schon etliches dazu angesehen, aber ich bin noch nicht schlau daraus geworden.

Ich möchte die session in einem shop-System anwenden, bei dem jeder user eine eigene session ID zugewiesen bekommt, damit die Artikel in dem Warenkorb (Datenbank mySQL) bei jedem user getrennt werden.
Beispiel: User A und user B stellen zur gleichen Zeit diverse Artikel in den Warenkorb. Damit jeder nur seine eigenen Artikel in den Warenkorb sieht --> session-ID.
Muss dann eigentlich für jeden user eine neue Tabelle in den DB erstellt werden?

Wie mache ich dass genau?

Grüsse
groovesurfer
 
  • #2
ich denke ich habe es jetzt. Habe einfach mal session_start(); an den Anfang geknallt. Die Session ID wird nun auch korrekt übertragen wenn man auf Warenkorb klickt.

Jetzt bleibt nur noch die Frage: Würdet Ihr für jeden user eine eigene Tabelle erstellen lassen, wo er seine Artikel reinknallen kann? Man könnte die Tabelle ja nach versendung der Daten ja wieder löschen.
Oder gibt es eine bessere Lösung?
 
  • #3
Hi...

mit session_start() startest du logischerweise die Session. Eine Session-ID wird damit automatisch zugewiesen; die kannst du mit session_id() ermitteln.
Es reicht aber nicht, session_start() nur auf der Seite direkt nach dem Login auszuführen, das muss auf jeder Folgeseite auch gemacht werden.

Zum Thema Shopsystem: Ich hab einmal ein kleines Pizza-Bestellsystem mit Warenkorb programmiert. Da es nur eine sehr begrenzte Anzahl an Produkten gab, hab ich einfach ein stinknormales Array von Zahlen gemacht (Größe des Arrays = Anzahl der versichiedenen Produkte, Index = Bestellnummer, alle Elemente mit 0 initialisiert, sie geben die Anzahl der jeweiligen Produkte an, die sich im Warenkorb befinden).
Dieses Array hab ich dann mit session_register() in der Session registriert. (Ich weiss jetzt nicht mehr genau, ob session_register() nur in der Startseite der Session ausgeführt werden muss, oder aber wie bei session_start() auch in jeder Folgeseite)
Code:
session_start();
session_register(warenArray);
/* die Initialisierung des Arrays muss natürlich nur einmal vorgenommen werden */
for ($i=0; $i<anzahl_der_produkte; $i++) $warenArray[$i]=0;
Später kann man dann mit ner einfachen Abfrage die Anzahl eines Produktes im Warenkorb erhöhen oder reduzieren.
Code:
<?
if($add>=0) warenArray[$add]++;
if($remove>=0) warenArray[$remove]--;
?>
<html> 
[...]

<a href=<?echo $PHP_SELF?>?add=3>Anzahl von Produkt Nummer 3 erhöhen</a>
<a href=<?echo $PHP_SELF?>?remove=6>Anzahl von Produkt Nummer 6 reduzieren</a>

[...] 
</html>

Sicherlich kannst du den Warenkorb auch mit ner Datenbank managen. Du brauchst aber nur eine Tabelle (nicht für jede laufende Session eine). Schmeiss einfach alle Infos in die Tabelle. Du kannst die Produkte im Warenkorb anhand der gleich mit gespeicherten Session-ID den Besuchern zuordnen.

Greetz
M.
 
  • #4
ok. Besten Dank...
 
Thema:

php: Sessions?

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.836
Beiträge
707.957
Mitglieder
51.489
Neuestes Mitglied
DonMartin
Oben