Pizzabestellung

Ja, ich wollte eigentlich noch, dass das mit der Datenbank hinhaut, eine etwas bessere Validierung der Benutzereingaben und noch so ein paar kleine Verfeinerungen.
PS: die HTML-Datei wurde mit Nvu erstellt. ;)
 
Erst mal ein Lob: Das Programm ist sehr gut gelungen den einzigen "Fehler" den ich so beim durchlesen finde ist, dass die Verbindung zu Datenbank nacher nicht geschlossen wird.
@ dutchman2006: Hast du beim testeb die Datenbank und tabellen erstellt?

gruß stein
 
hast du den kommentar am ende dieser Zeile etwa auch stehen lassen? :P
PHP:
$db_link = mysql_connect('localhost', 'root', ''); //die Namen und Zugangsdaten musst du natuerlich anpassen
 
@Heinzelotto: Nein, hab' ich natürlich nicht ;) . Wen's interessiert: Hier der modifizierte Quellcode, is' aber nicht wirklich großartig was anderes:

PHP:
<?php

$fehler = array();
$vollstaendig = true;

$pizza = $_GET['pizza'];
if (!isset($pizza) || empty($pizza))
{
    $vollstaendig = false;
    $fehler[] = 'Sie müssen eine Pizza auswählen.';
}
elseif ($pizza != ('Margharita' || 'Cardinale' || 'Capricciosa' || 'Funghi' || 'Hawaii' || 'Pesto' || 'Rucola' || 'Quattro Stagioni' || 'Salami' || 'Tonno' || 'Frutti di Mare'))
{
    $vollstaendig = false;
    $fehler[] = 'Sie müssen eine der vorgegebenen Pizzen auswählen.';
}

$stueck = $_GET['stueck'];
if ($groesse != ('1' || '2' || '3' || '4' || '5' || '6' || '7' || '8' || '9' ))
{
    $vollstaendig = false;
}

$groesse = $_GET['pizza_groesse'];
if ($groesse != ('gross' || 'mittel' || 'klein'))
{
    $vollstaendig = false;
    $fehler[] = 'Sie müssen die Pizzagröße auswählen.';
}

//Daten der Person pruefen
$strasse = $_GET['strasse'];
if (strlen($strasse) < 3)
{
    $vollstaendig = false;
    $fehler[] = 'Bitte geben Sie Ihren korrekten Straßennahmen an.';
}

$plz = $_GET['plz'];
if (!preg_match( '/^[0-9]{4}$/', $plz))
{
    $vollstaendig = false;
    $fehler[] = 'Bitte geben Sie Ihre korrekte Postleitzahl an.';
}

$telefon = $_GET['telefon'];
if (!isset($telefon))
{
    $vollstaendig = false;
    $fehler[] = 'Bitte geben Sie Ihre korrekte Telefon-Nummer an.';
}

$vorname    = $_GET['vorname'];
if (!is_string($vorname))
{
    $vollstaendig = false;
    $fehler[] = 'Bitte geben Sie Ihren korrekten Vornamen an.';
}

$name = $_GET['name'];
if (!is_string($name))
{
    $vollstaendig = false;
    $fehler[] = 'Bitte geben Sie Ihren korrekten Nachnamen an.';
}
//Daten der Person fertig geprueft

//Falls eine oder mehrere Angaben fehlerhaft oder nicht ausgefuellt wurden,
//Alle Fehler ausgeben und das Skript abbrechen.
if (!$vollstaendig)
{
    for($i=0; $i<count($fehler); $i++)
    {
        echo $fehler[$i].'<br>';
    }

    //die("<br>\n Bitte korrigieren Sie Ihre Angaben.")
}

//Vor SQL-Injektion schuetzen
/*$pizza   = mysql_escape_string($pizza);
$groesse = mysql_escape_string($groesse);
$strasse = mysql_escape_string($strasse);
$plz     = mysql_escape_string($plz);
$telefon = mysql_escape_string($telefon);
$vorname = mysql_escape_string($vorname);
$name    = mysql_escape_string($name);
*/

//Anmeldung an der Datenbank
//$db_link = mysql_connect('localhost', 'root', 'root') or die ('konnte nicht verbinden');


//if(!@$db_link) die('Es gibt momentan technische Probleme, bitte versuchen Sie es in wenigen Minuten erneut.');

//if(!@mysql_select_db('mydb', $db_link)) die('Es gibt momentan technische Probleme, bitte versuchen Sie es in wenigen Minuten ernst.');

/*$sql = "INSERT INTO pizza
    (pizza, pizzaGroesse, strasse, plz, telefon, vorname, name, datum)
VALUES
    (    '$pizza',
        '$groesse',
        '$strasse',
        '$plz',
        '$telefon',
        '$vorname',
        '$name',
        NOW()
        )";

mysql_query($sql);
*/
echo "<body bgcolor=#FFFFCC><center><p>
        <font size=5><b>Ihre Bestellung:</b></font><br>
        <p>
        <font size=4> ".$stueck."x Pizza ".$pizza."</font> <br>
        Größe -  ".$groesse." <br><br>
		<b>Lieferdaten:</b><br>
        Name: ".$vorname." ".$name." <br>
		Straße: ".$strasse." <br>
        Postleitzahl: ".$plz." <br>
        Telefonnummer:".$telefon." <br>
        </center></body>";

?>

@Stein: Ja, habe ich erstellt. Ich habe die starke Vermutung, dass ich das mit den Anmeldedaten nicht korrekt gemacht hab' - sei's drum.

Und hier die ziemlich abgespeckte HTML-Datei.

@valenterry: Bei aller dankbarkeit, wieso hast du so viele unnötige span-tags drinnen gehabt (hat das vielleicht einen mir nicht bekannten Grund)?

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
 <title>Pizzabestellung</title>
</head>

<body bgcolor="#FFFFCC">

<h1 style="text-align: center;">Online Pizzabestellung</h1>

<form method="get" action="bestellung2.php">

  <div style="text-align: center;"><span style="font-weight: bold;">Ich hätte gerne <select name="stueck">

  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>

  <option>7</option>
  <option>8</option>
  <option>9</option>
  </select>
  mal Pizza </span><span style="font-weight: bold;">
  <select name="pizza">
  <option>Margharita</option>

  <option>Cardinale</option>
  <option>Capricciosa</option>
  <option>Funghi</option>
  <option>Hawaii</option>
  <option>Pesto</option>
  <option>Rucola</option>

  <option>Quattro Stagioni</option>
  <option>Salami</option>
  <option>Tonno</option>
  <option>Frutti di Mare</option>
  </select>

  </span>

  <br>
 
  <br>
  <span style="font-weight: bold;">
  Größe der Pizza:<br>
  </span>
 
  groß <input name="pizza_groesse" value="Groß" type="radio"><br>
  mittel<input checked="checked" name="pizza_groesse" value="mittel" type="radio"><br>

  klein <input name="pizza_groesse" value="klein" type="radio"><br>

  <br>

  <span style="font-weight: bold;">Bitte geben Sie die benötigten Lieferdaten ein:</span>
  
  <br>

  Straße/Hausnummer: <input size="40" name="strasse">    PLZ: <input size="5" maxlength="5" name="plz">

  
  <br>
  <br>

  Telefon-Nummer (für eventuelle Rückfragen): <input size="20" name="telefon">       
  
  <br>
  <br>

  Vorname: <input name="vorname">    Nachname:  <input name="name">
  
  <br>
  <br>

  <input value="Bestellung abschicken" name="abschicken" type="submit">    <input name="reset" value="Zurücksetzen" type="reset"><br>

  </div>

</form>

</body>
</html>

Grazie @ Alle.
LG
dutchman 8)
 
@valenterry: Bei aller dankbarkeit, wieso hast du so viele unnötige span-tags drinnen gehabt (hat das vielleicht einen mir nicht bekannten Grund)?

Weil mich eigentlich nur der PHP-Teil interessiert hat und ich den HTML-Teil mit Nvu gemacht habe, wie du auch schon 3 Posts über meinem hier lesen kannst.
Und Nvu's Quellcode ist eben doch nicht gerade der beste.
 
Zurück
Oben