Warenkorb System, aber wie?

caschti84

Grünschnabel
Nabend!
Habe vor ein einfaches, ohne großen zusatz, Warenkorb system zu proggen.
Irgendwie steig ich da abba noch nichtt ganz durch, wie ich das ganze speichere.
Um Sessions werd ich wohl nicht drum rum kommen, aber wie und wo setze ic hdie sessions und wo speichere ich die sessions am besten?
Wie speichere ich denn mehrere Werte in einer Session? ist das möglich?
Wie krieg ich die Session werte in die Datenbank schließendlich, oder ist ein datenbankeintrag überflüssig?
PS, gibbet irgendwo nen kleines tutorial für einen simplen warenkorb?

Man man, wäre für jeden Beitrag dankbar!

mfg

caschti84
 
Also um sessions kommst du nicht drumrum, es sei denn du nimmst cookies, würd ich aber net. auf php.net findest du genug info über session... und ne dB würd ich auf jedenfall einbauen, das erleichtert dir später die administration und du kannst einen kundenlogin basteln was dir die ganze sache einfach sicherer macht...gruß :p
 
Ich will ja keine Kundenlogin realisieren.
Im moment bin ich mir in einer sache unsicher, finde auch nirgends die passenden zeilen dazu:
Habe ein Formular mit 3 Checkboxen. Wenn eine gewählt wirt soll der Wert der Checkbox in eine Session gespeichert werden. Wie sieht die Syntax dazu und wie krieg ich die verbindung hin, dass die session id (SID) mit dem checkbox werd (session) zusammenhängt?
 
Was für eine "Verbindung" du meinst weiß ich nicht :-) , aber ichd enke mal, dass du den Wert in ne Variable haben willst und den dann wieder auslesen. Also, du speicherst den Wert dann in
PHP:
$_SESSION[name]

wobei name irgend ein Lustiches Wort ist was du dir ausdenks, z.B. so:

Von der Checkbox, die du über ein Formular mit method Post schickst kannst du den Wert auf der Ziel Seite ja per $_POST[checkbox] auslesen. Dann machst du einfach

PHP:
$_SESSION[checkbox] = $_POST[checkbox];

und kannst dann auf allen Seiten in der Session den Wert mit

PHP:
$_SESSION[checkbox]

abrufen

Ich hoffe es hilft.
Gruß GalaxyWarrior
 
Sicher hat GalaxyWarrior unbewusst vergessen seine Konstanten als Strings zu kennzeichnen :P

Zugriff auf assoziative Arrays bitte so:
PHP:
$_SESSION['name']
PHP:
$_SESSION['checkbox'] = $_POST['checkbox'];
PHP:
$_SESSION['checkbox']
 
Hi caschti84!
Ich kann die meinen kleinen Warenkorb (den ich gerade angefangen habe zu basteln [jedoch derzeit noch ohne Administration -> folgt aber noch]) zeigen...

PHP:
<?

//***************************************
// WARENKORB-SYSTEM MIT SESSIONS
//***************************************
// (c) Andulus 2005
//***************************************

function msql() {
	$host = "xxx";
	$user = "xxx";
	$pwd = "xxx";
	$dbname = "xxx";
	$verbindung = mysql_connect($host, $user, $pwd);
	mysql_select_db($dbname, $verbindung);
}

$action = $_GET['aktion'];

if($action=='artikel') {
msql();
$tbname = "artikel";
$sql = mysql_query("SELECT * FROM $tbname ORDER BY aid");

while($row = mysql_fetch_object($sql)) {
	echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=insert&aid=".$row->aid."'>In den Warenkorb legen</a><p>";
}
}

if($action=='insert') {
	session_start();
	$_SESSION['artikel'][] = $_GET['aid'];
	header("LOCATION: warenkorb.php?aktion=warenkorb");
}

if($action=='warenkorb') {
	session_start();
	if(!isset($_SESSION['artikel']))
	{
		echo "Ihr Warenkorb ist leer!<p><a href='?aktion=artikel'>Weiter shoppen</a><br>";
	} else {
	$count = count($_SESSION['artikel']);
	$i = 0;
	
	for($i; $i<$count; $i++) {
		msql();
		$tbname = "artikel";
		$artikel = $_SESSION['artikel'][$i];
		$sql = mysql_query("SELECT * FROM $tbname WHERE aid='$artikel'");
		while($row = mysql_fetch_object($sql)) {
			echo $row->artikelname." | ".$row->aid." | ".$row->preis." | <a href='?aktion=loeschen&count=".$i."'>Artikel löschen</a><p>";
		}
	}
	echo "<a href='?aktion=leeren'>Warenkorb leeren</a><br>";
	echo "<a href='?aktion=artikel'>Weiter shoppen</a><br>";
}
}

if($action=='loeschen') {
	session_start();
	$count = $_GET['count'];
	unset($_SESSION['artikel'][$count]);
	header("LOCATION: warenkorb.php?aktion=warenkorb");
}

if($action=='leeren') {
	session_start();
	session_unset();
	session_destroy();
	header("LOCATION: warenkorb.php?aktion=warenkorb");
}

// PS: Ein Administrationstool folgt noch...

?>

Grüße, Andulus!

[edit]
---> mit der "switch" funktion funktioniert es viel besser (erfahrungen) ;)
 
Zuletzt bearbeitet:
nabend!
Soa erstma riesendank für den code schnipsel!
So kann ich mir wenigstens mal ein paar Anregungen holen für meinen Warenkorb!
 
Zurück