Homepage selbermachen 7.851 Themen, 35.615 Beiträge

An die PHP Profis: Kleines Shop Script - finde fehler nicht

Gonzales / 3 Antworten / Flachansicht Nickles

Hallo, ich habe von einem Bekannten einen Teil eines Kleinen E shops programmiert
bekommen. Der ist aber seit vorgestern im Urlaub und ich weiss nicht wo der Fehler hängt.
folgendes soll im Script geschehen: Die Produkte sollen aus der DB gelesen werden
und dann gleich eine Session registriert werden. Es soll möglich sein, die Produkte
gleich zu bestellen. Ohne Cookies und ohne Javascript. Alles passiert auf dem Server.
Das Funktioniert auch soweit, doch die einzelnen Produkte, die man kaufen will,
werden nicht in der session registriert und ich kann den fehler nicht sehen.

<?php
session_start();

$db=mysql_connect(\\"localhost\\",\\"\\",\\"\\");
mysql_select_db(\\"shop\\");

$result=mysql_query(\\"select * from produkte order by id desc\\",$db);


while($zeile=mysql_fetch_object($result))
{
$produktnameregister=$zeile->produktname;
session_register(\\"$produktnameregister\\");
}

$result=mysql_query(\\"select * from produkte order by id desc\\",$db);
echo\\"<table style=\'border:1px solid #000000\' align=\'center\' width=\'90%\'>\\";
echo\\"<tr><td>Produkt</td><td>Beschreibung</td><td>Preis</td><td>Bestellen</td></tr>\\";

while($zeile=mysql_fetch_object($result)){
$produktnamesender=$zeile->produktname;
echo\\"<tr><td>$zeile->produktname</td>\\";
echo\\"<td>$zeile->beschreibung</td>\\";
echo\\"<td>$zeile->preis</td>\\";
echo\\"<td>
<form action=\'$PHP_SELF\'>
<input type=\'text\' name=\'wertsender\' value=\'1\' size=\'5\'>
<input type=\'text\' name=\'produktnamesender\' value=\'$zeile->produktname\' size=\'5\'>
<input type=\'submit\' name=\'bestellen\' value=\'bestellen\'>
</form>
</td>\\";
echo\\"</tr>\\";
}
echo\\"</table>\\";

?>

bei Antwort benachrichtigen
Borlander Gonzales „An die PHP Profis: Kleines Shop Script - finde fehler nicht“
Optionen
Die Produkte sollen aus der DB gelesen werden und dann gleich eine Session registriert werden.
Warum willst Du alle Produktnamen in der Session ablegen, die hast Du doch schon in der DB?
Mal abgesehen davon, kann das so sowieso nicht funktionieren da die Variable $produktnameregister bei jedem Schleifendurchlauf überschrieben wird. Willst Du ein Array haben, müssen eckige Klammern dahinter $produktnameregister[]. Sinnvoll wirds daudurch immer noch nicht...
Die Produkte müssen erst in die Session eingtragen werden, wenn sie auch bestellt werden.

Das Funktioniert auch soweit, doch die einzelnen Produkte, die man kaufen will, werden nicht in der session registriert und ich kann den fehler nicht sehen.
Dafür musst Du die Formulareingaben auch entdprechend weiterverarbeiten, beim erneuten Aufruf der Seite.

Mit if(isset($wertsender)&&isset($produktnamesender))
kannst Du prüfen ob die Seite mit den Formulareingaben aufgerufen wurde.


CU Borlander
bei Antwort benachrichtigen