Problem mit PHP Shop
Ich finde das fehlende } nicht.
Hier mal der Code vielleicht findet das jemand, Hoffentlich.
Hier mal der Code vielleicht findet das jemand, Hoffentlich.
Code: Alles auswählen
<?
// Includes
include ("config.php");
include ("templates.php");
// Variablen Deklaration
if (!isset($_GET['id'])) $_GET['id'] = "";
if (!isset($_GET['search'])) $_GET['search'] = "";
if (!isset($_GET['typ_d'])) $_GET['typ_d'] = "";
if (!isset($_POST['variante1'])) $_POST['variante1'] = "";
if (!isset($_POST['variante2'])) $_POST['variante2'] = "";
if (!isset($_POST['menge'])) $_POST['menge'] = "";
if (!isset($LINK)) $LINK = "";
$get_vars['id'] = htmlentities($_GET['id']);
$get_vars['search'] = htmlentities($_GET['search']);
$get_vars['typ_d'] = htmlentities($_GET['typ_d']);
$post_vars['variante1'] = htmlentities($_POST['variante1']);
$post_vars['variante2'] = htmlentities($_POST['variante2']);
$post_vars['menge'] = htmlentities($_POST['menge']);
// Programm-Code
if ($get_vars['typ_d'] == "details"): header("Location: index.php?site=details&id={$get_vars['id']}&kategorie={$get_vars['kategorie']}&search={$get_vars['search']}&main_kat={$get_vars['main_kat']}&start={$get_vars['start']}&action=erfolg&nr={$get_vars['nr']}");
elseif (!$get_vars['search']): header("Location: index.php?site=show&kategorie={$get_vars['kategorie']}&main_kat={$get_vars['main_kat']}&start={$get_vars['start']}&action=erfolg&nr={$get_vars['nr']}");
else: header("Location: index.php?site=suche_details&search={$get_vars['search']}&start={$get_vars['start']}&action=erfolg&nr={$get_vars['nr']}");
if ($shop == "enable"){
if ($get_vars['typ_d'] == "details"): $LINK = "index.php?site=details&id={$get_vars['id']}&kategorie={$get_vars['kategorie']}&search={$get_vars['search']}&main_kat={$get_vars['main_kat']}&start={$get_vars['start']}&action=error&nr={$get_vars['nr']}";
elseif (!$get_vars['search']): $LINK = "index.php?site=show&kategorie={$get_vars['kategorie']}&main_kat={$get_vars['main_kat']}&start={$get_vars['start']}&action=error&menge={$post_vars['menge']}&nr={$get_vars['nr']}";
else: $LINK = "index.php?site=suche_details&search={$get_vars['search']}&start={$get_vars['start']}&action=error&menge={$post_vars['menge']}&nr={$get_vars['nr']}";
endif;
if ($post_vars['menge'] == 0): header("Location: $LINK");
elseif ($get_vars['typ_d'] != "details" AND $post_vars['variante1']): header("Location: $LINK");
elseif ($get_vars['typ_d'] != "details" AND $post_vars['variante2']): header("Location: $LINK");
else:
{
if (!$get_vars['nr']) $get_vars['nr'] = md5(uniqid(rand()));
$datum = time();
$conn_id = mysql_connect($HOST,$ID,$PW);
mysql_select_db($DB,$conn_id);
$result = mysql_query("select id from ".$PREFIX."_Session where id = '{$get_vars['nr']}'");
$check_nr = mysql_numrows($result);
if ($check_nr == 0) mysql_query("insert into ".$PREFIX."_Session (id,datum) VALUES ('{$get_vars['nr']}','$datum')");
else mysql_query("update ".$PREFIX."_Session set datum ='$datum' where id = '{$get_vars['nr']}'");
$result = mysql_query("select artikelnummer , name , preis from ".$PREFIX."_Artikel where id = '{$get_vars['id']}'");
while ($row = mysql_fetch_object($result))
{
$artikelnummer = $row->artikelnummer;
$name = $row->name;
$preis = $row->preis;
}
$result = mysql_query("select artikelnummer from ".$PREFIX."_Warenkorb where artikelnummer = '$artikelnummer' AND nr = '{$get_vars['nr']}'");
$check_artikel = mysql_numrows($result);
if ($check_artikel == 0) mysql_query("insert into ".$PREFIX."_Warenkorb (nr,artikelnummer,name,menge,preis,variante1,variante2) VALUES ('{$get_vars['nr']}','$artikelnummer','$name','{$post_vars['menge']}','$preis','{$post_vars['variante1']}','{$post_vars['variante2']}')");
else
{
$result = mysql_query("select id, menge , variante1 , variante2 from ".$PREFIX."_Warenkorb where artikelnummer = '$artikelnummer' AND nr = '{$get_vars['nr']}'");
$anzahl_artikel = "";
while ($row = mysql_fetch_object($result))
{
$variante1_wk = $row->variante1;
$variante2_wk = $row->variante2;
$menge1 = $row->menge;
$id_artikel = $row->id;
if ($variante1_wk == $post_vars['variante1'] AND $variante2_wk == $post_vars['variante2'])
{
$menge2 = $post_vars['menge'] + $menge1;
mysql_query("update ".$PREFIX."_Warenkorb set menge ='$menge2' where id = '$id_artikel' AND nr = '{$get_vars['nr']}'");
$anzahl_artikel++;
}
}
if (!$anzahl_artikel) mysql_query("insert into ".$PREFIX."_Warenkorb (nr,artikelnummer,name,menge,preis,variante1,variante2) VALUES ('{$get_vars['nr']}','$artikelnummer','$name','{$post_vars['menge']}','$preis','{$post_vars['variante1']}','{$post_vars['variante2']}')");
}
$datum1 = time();
$datum1 = $datum1 - 3600;
$result = mysql_query("select id from ".$PREFIX."_Session where datum < '$datum1' order by datum");
while ($row = mysql_fetch_object($result))
{
$id1 = $row->id;
mysql_query("delete from ".$PREFIX."_Session where id = '$id1'");
mysql_query("delete from ".$PREFIX."_Warenkorb where nr = '$id1'");
}
mysql_close($conn_id);
}
endif;
}
else header("Location: index.php?site=shop&nr=");
?>
- D@ve
- Ehemaliges Teammitglied
- Beiträge: 3842
- Registriert: 28.08.2002 19:33
- Wohnort: Bretzfeld
- Kontaktdaten:
Du erwartest doch jetzt nicht allen ernstes dass Dir hier jemand Diene Parse-Errors beseitigt.
Geheimtipp: strukturier Deinen Code anständig, dann findest Du auch Klammerfehler. Setze die Klammern vernünftig und jede in eine eigene Zeile.
Extrem Schlecht ist es überhaupt keine Klammern zu setzen
Die einzeilige Variante ist aber genauso unübersichtlich:
Auch diese unter Programmierern oft beliebte Variante ist eigentlich extrem ungünstig da man ein Klammernpaar auf den ersten Blick nicht erkennen kann:
Besser ist immer so:
Auch wenn es sich nur um eine Zeile handelt, würde ich immer Klammern setzen. Auch solltest Du unbedingt versuchen, einheitlich einzurücken. Bei sowas, blickt nachher NIEMAND (inklusive Dir selber) mehr durch:
Achja: Wenn Du schon mit "endif" arbeitest (was ich persönlich für unsinnig erachte, weil es einfach ungebräuchlich und unübersichtlich ist) dann mach es wenigstens konsequent und nicht mal so und mal so...
Geh mal den Code Zeile für Zeile durch und strukturier den nach den obigen Tipps. Ich wette wenn Du durch bist hast Du den Fehler von ganz alleine gefunden.
Gruß, Dave
PS: Bitte in Zukunft den phpBB.de Knigge beachten und keine derart langen Quelltexte posten - danke
Geheimtipp: strukturier Deinen Code anständig, dann findest Du auch Klammerfehler. Setze die Klammern vernünftig und jede in eine eigene Zeile.
Extrem Schlecht ist es überhaupt keine Klammern zu setzen
Code: Alles auswählen
if ($bla === "blubb")do_somthing($value)
Code: Alles auswählen
if ($bla === "blubb"){do_somthing($value)}
Code: Alles auswählen
if ($bla === "blubb"){
do_somthing($value)
}
Code: Alles auswählen
if ($bla === "blubb")
{
do_somthing($value)
}
Code: Alles auswählen
if ($bedingung){
.
.
.
usw...
endif;
if ($post_vars['menge'] == 0): header("Location: $LINK");
elseif ($get_vars['typ_d'] != "details" AND $post_vars['variante1']): header("Location: $LINK");
elseif ($get_vars['typ_d'] != "details" AND $post_vars['variante2']): header("Location: $LINK");
else:
{
if (!$get_vars['nr']) $get_vars['nr'] = md5(uniqid(rand()));
$datum = time();
$conn_id = mysql_connect($HOST,$ID,$PW);
mysql_select_db($DB,$conn_id);
$result = mysql_query("select id from ".$PREFIX."_Session where id = '{$get_vars['nr']}'");
$check_nr = mysql_numrows($result);
if ($check_nr == 0) mysql_query("insert into ".$PREFIX."_Session (id,datum) VALUES ('{$get_vars['nr']}','$datum')");
else mysql_query("update ".$PREFIX."_Session set datum ='$datum' where id = '{$get_vars['nr']}'");
$result = mysql_query("select artikelnummer , name , preis from ".$PREFIX."_Artikel where id = '{$get_vars['id']}'");
while ($row = mysql_fetch_object($result))
{
$artikelnummer = $row->artikelnummer;
$name = $row->name;
$preis = $row->preis;
}
Geh mal den Code Zeile für Zeile durch und strukturier den nach den obigen Tipps. Ich wette wenn Du durch bist hast Du den Fehler von ganz alleine gefunden.
Gruß, Dave
PS: Bitte in Zukunft den phpBB.de Knigge beachten und keine derart langen Quelltexte posten - danke
There are only 10 types of people in the world: Those who understand binary, and those who don't