Hi,
eigtl. ist es kein richtiger Fehler, es wird nur alles nicht so abgearbeitet wie ich es gern hätte. Ich hänge an dem Fehler jetzt schon seit paar Stunden ununterbrochen und deswegen hab ich mich jetzt hier mal hergetraut um eure Meinung zu hören warum mein Script nicht funktioniert. Es gibt 4 Schritte bei einer Bestellung von Artikeln. Is nichts großes deswegen wird es klein gehalten.
hoffe der ist jetzt nicht zu lang
Nun mein Problem:
Bis zum Schritt 3 funktioniert alles (siehe Kommentare), wenn ich jedoch dann auf "Bestellung abschicken" klicke wird main.php?mode=merch aufgerufen aber der inhalt ist leer. Der Quelltext zeigt nur das an:
d.h. also, das ab dem ersten Schritt nichts mehr ausgegeben wird. Das ist natürlich irgendwie komisch weil ich zum Schluss ja auch "else bla" geschreiben habe also müsste es ja zumindest das ausführen... ich hoffe ihr könnt mir helfen und mir evtl sagen wo der logische Fehler in meinem Script liegt. Sonst macht das Script alles was ich will. DB - Verbindung wird über include("inc.php") aufgerufen.
mfg, tholmer
eigtl. ist es kein richtiger Fehler, es wird nur alles nicht so abgearbeitet wie ich es gern hätte. Ich hänge an dem Fehler jetzt schon seit paar Stunden ununterbrochen und deswegen hab ich mich jetzt hier mal hergetraut um eure Meinung zu hören warum mein Script nicht funktioniert. Es gibt 4 Schritte bei einer Bestellung von Artikeln. Is nichts großes deswegen wird es klein gehalten.
PHP:
<?php
include("inc.php");
//Hits
$page = "merch.php";
$sql = "UPDATE xtro_hits SET hits = hits + 1 WHERE page = '$page'";
mysql_query($sql);
$bestell = "";
$add = false;
//auslesen der variable von "Schritt 2"
if(isset($HTTP_GET_VARS['sub']))
{
$bestell = $HTTP_GET_VARS['sub'];
}
elseif(isset($HTTP_POST_VARS['sub']))
{
$bestell = $HTTP_POST_VARS['sub'];
}
else
{
$bestell = "";
}
//auslesen der allg. Variable der Artikel ID
if(isset($HTTP_GET_VARS['a_id']))
{
$a_id = $HTTP_GET_VARS['a_id'];
}
elseif(isset($HTTP_POST_VARS['a_id']))
{
$a_id = $HTTP_POST_VARS['a_id'];
}
else
{
$a_id = 0;
}
//auslesen der variable von "Schritt 3", ein Submit Button
if(isset($HTTP_POST_VARS['add']))
{
$add = true;
}
else
{
$add = false;
}
?>
<html>
<head>
<title></title>
<style type="text/css">
body
{
font-family: Garamond;
}
.title {
font-size:11px;
font-weight:bold;
}
.headline {
font-size: 16px;
font-weight:bold;
color:#6C9223;
}
.seite {
font-size:11px;
font-weight:bold;
}
.text {
font-size:14px;
}
.button {
font-family: Garamond;
font-size: 14px;
border: #A4BC34 1px solid;
background-color:#6C9223;
}
.field {
background-color:#2D361B;
color: #FFFFFF;
border: #A4BC34 1px solid;
}
.stern {
color:red;
}
</style>
</head>
<body bgcolor="#000000" text="#FFFFFF" marginwidth="0" marginheight="5" topmargin="5" leftmargin="0" link="#E2E3A1" vlink="#E2E3A1" alink="#E2E3A1">
<table width="90%" cellspacing="1" cellpadding="1" border="0" align="center" bgcolor="#A4BC34">
<tr>
<th bgcolor="#2D361B"><span class="headline">Merch</span></th>
</tr>
<tr>
<td bgcolor="#000000">
<br />
<?
//SCHRITT 1 - Alle Artikel im Überblick
//noch keine Artikel ID gesetzt und $bestell soll leer sein und $add nich gesetzt sein
if(!$a_id && $bestell == "" && $add == false)
{
$sql = "SELECT * FROM xtro_artikel ORDER BY a_id DESC";
$res = mysql_query($sql);
while($artikel = mysql_fetch_object($res))
{
//Ausgabe
$file_name = $artikel->image;
//Namensberechnung für Thumbnail
$thumb_name = get_thumb_name($artikel->image);
$src = "images/merch/$thumb_name";
?>
<table width="70%" cellspacing="1" cellpadding="2" bgcolor="#A4BC34" align="center">
<tr>
<td bgcolor="#000000" rowspan="5" align="center" width="<?= (40+($config['thumbs_width'])) ?>"><br /><a href="main.php?mode=merch&a_id=<?= $artikel->a_id ?>" title="Artikel bestellen"><img src="<?= $src ?>" alt="Bild vom Artikel" border="0" /></a><br /><br /></td>
<td bgcolor="#2D361B" width="*"><span class="headline"><?= $artikel->title?></span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="text"><?= nl2br(stripslashes($artikel->desc)) ?></span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="title">Preis:</span> <span class="text"><?= $artikel->preis ?> €/Stk.</span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="text">Artikel verfügbar seit: <?= dating($artikel->time) ?></span></td>
</tr>
<tr>
<th bgcolor="#000000"><a href="main.php?mode=merch&a_id=<?= $artikel->a_id ?>" title="Artikel bestellen"><span class="text">Artikel bestellen</span></a></th>
</tr>
</table>
<br />
<?
}
}
//SCHRITT 2 - Ein Artikel im Detail
//Artikel ID gesetzt (vom Link "Artikel bestellen übernommen) und
//$bestell soll leer sein und $add nicht gesetzt sein
elseif($a_id != 0 && $bestell == "" && $add == false)
{
$sql = "SELECT * FROM xtro_artikel WHERE a_id = $a_id";
$res = mysql_query($sql);
if(mysql_num_rows($res))
{
//Ausgabe des Artikels
$artikel = mysql_fetch_array($res);
$desc = nl2br(stripslashes($artikel['desc']));
$preis = $artikel['preis'];
$verfuegbarkeit = $artikel['verfuegbarkeit'];
$title = stripslashes($artikel['title']);
$bestellungen = $artikel['bestellungen'];
$datum = dating($artikel['time']);
$img = $artikel['image'];
//Namensberechnung für Thumbnail
$thumb_name = get_thumb_name($img);
$src = "images/merch/$thumb_name";
$size = getimagesize("images/merch/$img");
$width = $size[0];
$height = $size[1];
?>
<table width="70%" cellspacing="1" cellpadding="2" bgcolor="#A4BC34" align="center">
<tr>
<td bgcolor="#000000" rowspan="6" align="center" width="<?= (40+($config['thumbs_width'])) ?>"><br /><a href="javascript:window.open('inhalt/pic.php?a_id=<?= $a_id ?>','Bild','width=<?= $width ?>,height=<?= $height ?>'); focus()"><img src="<?= $src ?>" alt="Bild vom Artikel" border="0" /></a><br /><span class="text">Klick -> Großansicht</span><br /></td>
<td bgcolor="#2D361B" width="*"><span class="headline"><?= $title?></span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="text"><?= nl2br(stripslashes($desc)) ?></span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="title">Preis:</span> <span class="text"><?= $preis ?> €/Stk.</span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="text">Bestellungen seit <?= $datum ?>: <?= $bestellungen ?></span></td>
</tr>
<tr>
<td bgcolor="#000000"><span class="text">Verfügbarkeit: <?= $verfuegbarkeit ?> Stk.</span></td>
</tr>
<tr>
<th bgcolor="#000000"><a href="main.php?mode=merch&a_id=<?= $a_id ?>&sub=bestellen" title="Artikel bestellen"><span class="text">Weiter zur Bestellung</span></a></th>
</tr>
</table>
<br>
<?
}
else
{
header("Location main.php?mode=merch");
exit;
}
}
//SCHRITT 3 - Ein Formular zum ausfüllen der Daten für die Bestellung
//Artikel ID gesetzt und $bestell soll gesetzt sein aber $add nicht
elseif($a_id != 0 && $bestell == "bestellen" && $add == false)
{
$error = (isset($HTTP_GET_VARS['error'])) ? '<span style="color:red">'.$HTTP_GET_VARS['error'].'</span>' : "";
$sql = "SELECT * FROM xtro_artikel WHERE a_id = $a_id";
$res = mysql_query($sql);
if(mysql_num_rows($res))
{
$artikel = mysql_fetch_array($res);
$desc = nl2br(stripslashes($artikel['desc']));
$preis = $artikel['preis'];
$verfuegbarkeit = $artikel['verfuegbarkeit'];
$title = stripslashes($artikel['title']);
$bestellungen = $artikel['bestellungen'];
$datum = dating($artikel['time']);
$img = $artikel['image'];
$hidden_fields = '<input type="hidden" name="a_id" value="'.$a_id.'" /><input type="hidden" name="sub" value="bestellen" />';
echo $error;
?>
<form action="main.php?mode=merch" method="post">
<table width="70%" cellspacing="1" cellpadding="2" bgcolor="#A4BC34" align="center">
<tr>
<td colspan="2" bgcolor="#000000"><span class="text">Hier können Sie den von Ihnen gewählten Artikel bestellen. Füllen sie das Formular aus. Mit einem <span class="stern">*</span> markierte Felder sind Pflichtfelder und sind für die Bestellung zwingend notwendig. Nach dem Abschicken der Bestellung erhalten sie eine eMail mit allen weiteren Informationen die zur Abwicklung nötig sind. Zahlungsart ist Vorkasse.</span></td>
</tr>
<tr>
<td bgcolor="#000000" colspan="2"><b>Artikel: <?= $title ?>, Verfügbarkeit: <?= $verfuegbarkeit ?></b></td>
</tr>
<tr>
<td bgcolor="#000000">Vorname:</td>
<td bgcolor="#000000"><input class="field" type="text" name="vorname" size="15" maxlenght="50" /> <span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">Nachname:</td>
<td bgcolor="#000000"><input class="field" type="text" name="nachname" size="15" maxlenght="50" /> <span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">Sraße + Hausnr.:</td>
<td bgcolor="#000000"><input class="field" type="text" name="straße" size="40" maxlenght="100" /> <span class="stern">*</span> <input class="field" type="text" name="hnr" size="2" maxlenght="3" /> <span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">PLZ + Ort:</td>
<td bgcolor="#000000"><input class="field" type="text" name="plz" size="6" maxlenght="10" /> <span class="stern">*</span> <input class="field" type="text" name="ort" size="20" maxlenght="50" /><span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">Anzahl:</td>
<td bgcolor="#000000"><input class="field" type="text" name="anzahl" size="3" maxlenght="3" value="1" /> <span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">eMail:</td>
<td bgcolor="#000000"><input class="field" type="text" name="email" size="20" maxlenght="40" /> <span class="stern">*</span></td>
</tr>
<tr>
<td bgcolor="#000000">Telefon:</td>
<td bgcolor="#000000"><input class="field" type="text" name="telefon" size="20" maxlenght="40" /></td>
</tr>
<tr>
<td bgcolor="#000000">Bemerkung:</td>
<td bgcolor="#000000"><textarea class="field" name="bemerkung" cols="30" rows="4">hier ggf. zb. T-Shirt Größe angeben</textarea></td>
</tr>
<tr>
<td colspan="2" bgcolor="#000000" align="center" height="30"><?= $hidden_fields ?><input type="submit" name="add" value="Bestellung abschicken" class="button" /> - <input type="reset" name="reset" value="Zurücksetzen" class="button" /></td>
</tr>
</table>
</form>
<br />
<?
}
else
{
header("Location main.php?mode=merch");
exit;
}
}
//SCHRITT 4 - Eintrag in die DB (ist noch nicht fertig das
//script weils ja so noch nich funktioniert
//Artikel ID gesetzt und $bestell soll gesetzt und $add soll auch gesetzt sein
elseif($a_id != 0 && $add == true && $bestell == "bestellen")
{
$id = (isset($HTTP_POST_VARS['a_id'])) ? $HTTP_POST_VARS['a_id'] : 0;
$vorname = (isset($HTTP_POST_VARS['vorname'])) ? trim($HTTP_POST_VARS['vorname']) : "";
$nachname = (isset($HTTP_POST_VARS['nachname'])) ? trim($HTTP_POST_VARS['nachname']) : "";
$sraße = (isset($HTTP_POST_VARS['sraße'])) ? trim($HTTP_POST_VARS['sraße']) : "";
$hnr = (isset($HTTP_POST_VARS['hnr'])) ? trim($HTTP_POST_VARS['hnr']) : "";
$plz = (isset($HTTP_POST_VARS['plz'])) ? trim($HTTP_POST_VARS['plz']) : "";
$ort = (isset($HTTP_POST_VARS['ort'])) ? trim($HTTP_POST_VARS['ort']) : "";
$anzahl = (isset($HTTP_POST_VARS['anzahl'])) ? trim($HTTP_POST_VARS['anzahl']) : "";
$email = (isset($HTTP_POST_VARS['email'])) ? trim($HTTP_POST_VARS['email']) : "";
$bemerkung = (isset($HTTP_POST_VARS['bemerkung'])) ? trim(addslashes($HTTP_POST_VARS['bemerkung'])) : "";
$telefon = (isset($HTTP_POST_VARS['telefon'])) ? trim($HTTP_POST_VARS['telefon']) : "";
if(!$id || $vorname == "" || $nachname == "" || $sraße == "" || $hnr == "" || $plz == "" || $ort == "" || $anzahl == "" || $email == "")
{
header("Location main.php?mode=merch&a_id=$id&sub=bestellen&error=Pflichtfelder ausfüllen!");
exit;
}
$sql = "INSERT INTO xtro_bestellungen (`a_id`, `bezahlt`, `anzahl`, `vorname`, `nachname`, `straße`, `hnr`, `plz`, `ort`, `email`, `telefon`, `bemerkung`) VALUES ($id,0,$anzahl,'$vorname','$nachname','$straße','$hnr','$plz','$ort','$email','$telefon','$bemerkung')";
if(mysql_query($sql))
{
echo 1;
$in_db = true;
}
else
{
$in_db = false;
}
}
else
{
header("Location main.php?mode=merch");
exit;
}
?>
</td>
</tr>
</table>
</body>
</html>
hoffe der ist jetzt nicht zu lang

Nun mein Problem:
Bis zum Schritt 3 funktioniert alles (siehe Kommentare), wenn ich jedoch dann auf "Bestellung abschicken" klicke wird main.php?mode=merch aufgerufen aber der inhalt ist leer. Der Quelltext zeigt nur das an:
HTML:
<html>
{KOPF}
<body bgcolor="#000000" text="#FFFFFF" marginwidth="0" marginheight="5" topmargin="5" leftmargin="0" link="#E2E3A1" vlink="#E2E3A1" alink="#E2E3A1">
<table width="90%" cellspacing="1" cellpadding="1" border="0" align="center" bgcolor="#A4BC34">
<tr>
<th bgcolor="#2D361B"><span class="headline">Merch</span></th>
</tr>
<tr>
<td bgcolor="#000000">
<br />
d.h. also, das ab dem ersten Schritt nichts mehr ausgegeben wird. Das ist natürlich irgendwie komisch weil ich zum Schluss ja auch "else bla" geschreiben habe also müsste es ja zumindest das ausführen... ich hoffe ihr könnt mir helfen und mir evtl sagen wo der logische Fehler in meinem Script liegt. Sonst macht das Script alles was ich will. DB - Verbindung wird über include("inc.php") aufgerufen.
mfg, tholmer