Session ID in Datenbank speichern möglich ?

mgh

Grünschnabel
hallo,

beschäftige mich jetzt seit ein paar Wochen mit PHP und möchte einen sehr einfaches Warenkorbsystem programmieren.

Meine Frage:
Ist es überhaupt möglich, die Session ID in einer Datenbank (Warenkorb) zu speichern? Ich habe es mit einem unsichtbaren input-Feld versucht, aber es kommt nur ein Datum in der DB an. Das Feld in der DB-Tabelle Warenkorb lautet: PHPSESSID Varchar (11); ist das eventuell falsch?
 
Die aktuelle Session ID kriegst du mit session_id() raus diese kannst du dann per Update Befehl in einer Datenbank speichern. z.B.

PHP:
$sql="UPDATE tabelle 
	SET Spaltenname='".session_id()."' 
	WHERE KundenID=".$kundenID; 
	 mysql_query($sql);
 
Re: Session ID... - warum ich das will !

Ich hatte vor, eine Tabelle "Warenkorb" für Artikel, die in den Warenkorb gelegt werden, zu erstellen.

Damit die Artikel dann identifiziert werden können (wer was in den WK gelegt hat), dachte ich mir, die Artikel mit der Session ID des jeweiligen Käufers zu versehen, und dann in der "warenkorb.php" alle Artikel mit der gleichen Session ID (wie der Benutzer) aus der Tabelle "Warenkorb" anzeigen zu lassen.

Falls dies nicht geht, oder zu umständlich ist, würde ich mich über Tipps freuen.
 
Das geht, progge auch an so einem Teil gerade rum und es läuft. Allerdings habe ich es etwas anderst gemacht.

Der User bekommt ob angemeldet oder nicht eine Nummer nach md5(), sofern er ein Produkt in den Warenkorb legt. Diese Nummer wird beibehalten bis zur endgültigen Bestellung.

Gibt er die Bestellung auf, wird über die Session geprüft, ob er alle Daten wie Anschrift und Name angegeben hat und danach wird der Warenkorb in der DB übertragen für die Abarbeitung und eine Info an den User als auch an das Bearbeitungsteam gesendet. Danach wird die Nummer gelöscht.

Unabhängig davon ist der Logginbereich über die Session geregelt. Wenn nun der Kunde weitere Bestellungen aufgeben möchte, wird erst wieder eine Nummer erzeugt, wenn er Waren in den Warenkorb legt. Angemeldet ist er solange, bis er entweder sich abmeldet, oder das Browserfenster schliesst, oder die Zeit der Untätigkeit im Shop abgelaufen ist.
 
Wieso wird denn nur bei Anmeldung eine Sitzung gestartet? Das ganze könnte doch bereits bei Betreten der Webseite geschehen, so wäre auch die Behelfsidentifikation überflüssig.
 
hab das so gemacht. beim start der shop.php wird die session gestartet. session_id() ;
über ein unsichtbares input-feld übergeben, aber in der db kommt nur ein datum an? und ich weiß nicht, wo der fehler liegt.

shop.php
PHP:
session_start(); 
....
"<input type=\"hidden\" name=\"PHPSESSID\" value=\"<?=session_id()?>\">",

form.php
PHP:
session_start();
...
mysql_query("
  INSERT INTO Warenkorb
  (PHPSESSID, Artnr, Anzahl)
  VALUES
  (NOW(''), '$artnr', '$anzahl')
  ", $db);

db - Warenkorb: Zeile: PHPSESSID
PHP:
PHPSESSID Varchar (11)
 
Ja, wenn du das aktuelle Datum in die Datenbank einträgst, dann stehts auch drin :)

Ich frage mich aber immernoch, wieso du die Artikel nicht einfach in ner Session-Variable speicherst?
 
Zurück