Pizzabestellung

Hallo Leute!

Ich weiß nicht, inwiefern es eine Frechheit ist, so etwas hier zu fragen.
Wenn ein Mod was dagegen haben sollte, so möge er den Fred bitte unverzüglich entfernen - Danke.

Zu meinem Problem:
Wir machen im Informatikunterricht gerade PHP/MySQL und ich habe folgende Aufgabe bekommen:

Erstelle eine Seite zur Pizzabestellung. Die Seite soll folgende Informationen vom Benutzer abfragen:

  • Art der Pizza
  • Lieferadresse
  • Telefonnumer
  • natürlich der Name

Das ganze soll über ein Formular eingegeben (Pizzaart natürlich Liste) werden, in eine MySQL Datenbank übertragen, und anschließend auf einer "Ihre Bestellung lautet:"-Seite ausgegeben werden.

Dummerweise bin ich diesbezüglich ein ziemlicher Noob und steh voll auf der Leitung.
Sollte jemand von euch zu viel Zeit haben (obwohl es meiner Einschätzung nach gar nicht so Zeitaufwändig ist), wäre es toll, wenn mir jemand dieses Programm in vereinfachter Form zur Verfügung stellen könnte (einfach nur eine Liste mit zwei Auswahlmöglichkeiten, zwei sonstige Felder, ein Submit-Button und das ganze in die Datenbank schreiben (Der Übergang Formular-Datenbank macht mir die größten Sorgen) und im Optimalfalll auch wieder ausgeben (wobei ich glaube, dass ich das sogar zusammenbekomme, hoff' ich halt, denk ich, glaub ich mal :()).

Die Seite rundherum und die Modifikation des hoffentlich von einem barmherzigen HaBoLer dem Holländer zur Verfügung gestellten Programmcodes übernehme dann ich.

Es wäre extrem nett, wenn jemand so ein Template schreiben und mir zur Verfügung stellen (und somit meinen Anus) retten könnte.

Danke schon im Voraus und euch allen noch eine schöne Zeit!

LG
dutchman
 
Wieso soll as in die Datenbank...?

Könntest ja n einfaches Mailto Formular machn =)
 
also ich spreche jetzt mal nur für mich, glaube aber, die meinung von einigen hier damit zu treffen:

sinn der aufgabe ist es wohl nicht, dass du lernst, nach kompletten problemlösungen bei anderen zu fragen (nichts anderes tust du, da du etwa 95% der arbeit gerne von uns hättest). ich denke eher, dass der sinn darin besteht, dass du genau das lernst, wo du selber sagst dass du schwächen hast! und schwierig ist dieses projekt nun wirklich nicht.

ich gebe dir trotzdem einen tip:

falls du ein buch über php hast, suche dir mal eine anleitung darin, wie das mit den mysql-sachen funktioniert. meistens findest du sowas wie ein gästebuch als beispiel. ansonsten suche dir ein entsprechendes tutorial über google. dann lese dir das tutorial gut durch, da dieses dein problem schon in großen teilen abdecken kann. dann könntest du dir das beispiel als grundgerüst nehmen und soweit abwandeln, dass es deine bedürfnisse erfüllt. solltest du dann noch spezielle fragen/probleme haben, kannst du deinen quelltext gerne posten, dazu noch deine frage möglichst genau formulieren und dir wird hier sicher gerne geholfen
 
Entweder du machst es selber und stellst wenn dann nur konkrete fragen zu bestimmten problemen eine Frage, oder du hast ein PayPal konto und machst mir einen vorschlag und ich erledige es für dich.
 
Original von Oi!Alex
Entweder du machst es selber und stellst wenn dann nur konkrete fragen zu bestimmten problemen eine Frage, oder du hast ein PayPal konto und machst mir einen vorschlag und ich erledige es für dich.
Hallo? Moderatoren haben ja wohl mal vorrecht! :D



Ich denke eigentlich auch das du es wegen dem Lerneffekt lieber selbst versuchen solltest.
Da der Thread ja aber gegen keine Regel verstößt lasse ich ihn aber am Leben. ;)
 
Wie Poste ich richtig?
[...]
Probleme erörtern, nicht offen stehen lassen
[...]

Hierbei könntest du beispiel sagen, wobei es sich bei deinem "aufm Schlauch stehen" handelt, dann könnte man dir hierbei helfen. Alles andere würde den Sinn dieser Aufgabe verfehlen.
 
Da Xampp immer noch mit der CD-Verwaltung geliefert wird ist dies nicht nur
frech, sondern schon unverschämt.
:D Nicht nur die Frage :D

Gruss
 
@PuppE/Oi!Alex: Den Auftrag vergibt der Kunde :P
@Viele Andere: Ihr habt recht. Ich sollte es selbst probieren. Mein größtes Problem ist ja in Wirklichkeit der Zeitfaktor. Ich hab sauviel zu tun und es geht sich alles hinten und vorne nicht aus. Danke trotzdem und wenn wer trotzdem noch Bock hat was zu programmimeren, kann er mir das gerne geben :) !

Danke!
dutchman
 
Äh so ja... ich hab nun die Drecksarbeit geleistet. Hoffentlich verbessern die Profis hier das noch. Es sind 2 Dateien. einmal "bestellung.html" und "bestellung.php"

"bestellung.php":
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 != ('Salami' || 'Thunfisch' || 'El Paso' || 'Texas'))
{
	$vollstaendig = false;
	$fehler[] = 'Sie müssen eine der vorgegebenen Pizzen auswählen.';
}

$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]{5}$/', $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);


$db_link = mysql_connect('localhost', 'root', ''); //die Namen und Zugangsdaten musst du natuerlich anpassen

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 erneut.');

$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 "<p>
		bestellung:
		<p>
		pizza - $pizza <br>
		groesse - $groesse <br>
		strasse - $strasse <br>
		plz - $plz <br>
		telefonnr - $telefon <br>
		vorname - $vorname <br>
		nachname - $name";

?>

"bestellung.html"
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>

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

<form method="get" action="bestellung.php">
  <div style="text-align: center;"><span style="font-weight: bold;">
  </span><span style="font-weight: bold;">Art der
Pizza: </span><span style="font-weight: bold;">
  <select name="pizza">
  <option>Salami</option>
  <option>Thunfisch</option>
  <option>El Paso</option>
  <option>Texas</option>
  <option></option>
  </select>

  </span><br>

  <span style="font-weight: bold;">
  <br>

Größe:<br>

  </span>groß <span style="font-weight: bold;"><input name="pizza_groesse" value="Groß" type="radio"><br>

  </span>
  <div style="text-align: center;">mittel<input checked="checked" name="pizza_groesse" value="mittel" type="radio"><span style="font-weight: bold;"></span><br>

  <span style="font-weight: bold;"></span></div>

klein <input name="pizza_groesse" value="klein" type="radio"><span style="font-weight: bold;"><br>

  <br>

  <br>

  <span style="font-weight: bold;">Adresse:<br>

  <br>

  </span></span>Strasse:<span style="font-weight: bold;"><span style="font-weight: bold;"> <input size="40" name="strasse">    </span></span><span style="font-weight: bold;"><span style="font-weight: bold;"></span></span>PLZ: <span style="font-weight: bold;"><span style="font-weight: bold;"><input size="5" maxlength="5" name="plz"></span></span><span style="font-weight: bold;"><br>

  </span><br>

Telefon-Nummer: <input size="20" name="telefon">         <span style="font-weight: bold;"><br>

  <br>

  </span>Vorname: <input name="vorname">    Nachnahme:  <input name="name"><span style="font-weight: bold;"><br>

  <br>

  <br>

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

  </span></div>

</form>

</body>
</html>

Natürlich musst du da noch nachbessern und nachdesignen. Es ist nicht gerade sehr Kundenfreundlich und es stecken auch noch ein paar Fehler drin.
Z.B. erstellt er in der Datenbank keinen Eintrag, aber ich hab bis jetzt noch nicht herausgefunden, warum nicht. Und auch was die Variablen angeht ist es nicht so toll. Einmal gibt es "pizza_groesse", dann "pizzaGroesse" usw.
Naja ich hab keine große Lust mehr die Feinheiten noch zu verbessern.
Vielleicht liefert es dir zumindest ein paar Denkanstöße.
 
Waren wir uns net einig das wir heir keine kompletten Codes reinsetzen(außer gegen Bezahlung). :D

Wäre das net besser anstatt "get" den Befehl "post" zu verwenden.

Code:
<form method="post" action="bestellung.php">

Werd mir das mal in ruhe anschaun und mal sehn was ich noch entdeck. :D
 
Original von Dreamer
Waren wir uns net einig das wir heir keine kompletten Codes reinsetzen(außer gegen Bezahlung). :D
Naja zu spät, ich hatte ja schon angefangen.


Wäre das net besser anstatt "get" den Befehl "post" zu verwenden.

Code:
<form method="post" action="bestellung.php">

Werd mir das mal in ruhe anschaun und mal sehn was ich noch entdeck. :D

Ich weiß nicht genau, wieviele Zeichen GET maximal haben kann. Aber ich glaub es müsste reichen.
Wäre wirklich nett, wenn du dir das nochmal genau ansiehst. Das Abspeichern in die DB klappt nämlich auch nicht.
 
der Befehl "post" verwendet man meistens für ein Kontaktformular wo man selbst einen Text schreibt aber hier ist ja alles soweit vorgegeben. Wobei man bei get auch selbst die Zeichenlänge setzen kann. ;)

Hab mir man den text gezogen und schau mal ganz in ruhe heut nacht drüber. Freundin kommt eh erst halb 2 nach haus. :P
 
So, ich hab' die SQL-Befehle ausgeklammert, da hat irgendwas nicht funktioniert.
Hab' das Projekt trotzdem meinem Informatiklehrer abgegeben...siehe da, es is' immerhin eine drei !

Ich hab' das ganze übrigens in eine Webseite eingebaut: Piedro's Pizza

Danke für eure Hilfe!

LG
dutchman
 
Original von valenterry
-.- Du solltest das doch NICHT 1:1 kopieren. *seuftz*
Mal davon abgesehen war es gar nicht fertig!

...hab' ich auch nicht. Was meinst du? Die SQL-Anmeldedaten? Wurden Angepasst, funzen aber nicht. Die Datenbanknamen? Wurden angepasst, bringt aber ohne funzendes connect nix. Die Variablennamen? Wozu ändern + ich hab eine hinzugef.?

Außerdem hab ich noch Stückzahl hinzugefügt und die Texte geändert, das Formular um viele unnötige span-Tags bereinigt und übersichtlicher gemacht.

Ich bin dir echt dankbar, aber was willst du jetzt eigentlich genau?
 
Zurück
Oben