 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
07.05.2008, 12:14
|
#1
|
|
TP-Junior
Registriert seit: Jan 2006
|
Formularbearbeitung in PHP
Hallo Leute,
wer kann mir sagen, wie man am elegantesten Formulare mit PHP verarbeitet. Zur Zeit mache ich immer folgendes, finde es aber ziehmlich schlecht.
Beispiel anhand einer Adresseliste:
1. Adressliste.php
Liste der vorhandenen Adressen und ein Link, mit dem ich zum Formular komme, um eine neue Adresse anzulegen.
2. Formular.php
Enthält das Formular, was mit submit an save.php verschickt wird.
3. Save.php
Speichert die Daten in der Datenbank. Bei Erfolg, wird mit JavaScript an Adressliste.php zurückgeleitet.
|
|
|
07.05.2008, 12:51
|
#2
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Man könnte es auch alles in einer Datei machen ...
PHP-Code:
<?php function checkData() { $errorcheck = false; foreach($_POST as $key => $data) { switch ($key) { case 'name': if(empty($data)) { $errorcheck .= "<p>Bitte geben Sie einen Namen an.</p>"; } else if(strlen($data) <= 2) { $errorcheck .= "<p>Der angegebene Name ist zu kurz.</p>"; } break; case 'plz': if(empty($data)) { $errorcheck .= "<p>Bitte geben Sie eine PLZ an.</p>"; } else if(!eregi("^[0-9]{5}$", $data)) { $errorcheck .= "<p>Die PLZ ist nicht gültig.</p>"; } break; } } if($errorcheck) { return $errorcheck; } else { saveData(); } }
function saveData() { // SQL-Befehl //INSERT INTO ... header('Location: Adressliste.php'); }
if(!empty($_POST)) { $check = checkData(); }
if($check) { echo $check; }
echo <<<ENDE <form name="form1" id="form1" method="post" action="{$_SERVER['PHP_SELF']}"> <lable for="name">Name: </lable> <input type="text" name="name" id="name" value="{$_POST['name']}" /> <lable for="name">PLZ: </lable> <input type="text" name="plz" id="plz" value="{$_POST['plz']}" /> <input type="submit" name="submit" id="submit" value="speichern" /> </form> ENDE; ?>
|
|
|
07.05.2008, 12:53
|
#4
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
tss tss ... alt geworden, was? 
|
|
|
08.05.2008, 12:06
|
#5
|
|
TP-Junior
Registriert seit: Jan 2006
|
OK, verstehe. Aber bei dieser Variante spare ich mir auch nur die Save.php!?
Gibt es aber etwas, was mir das Javascript (localation.href), also das zurückführen auf die Liste, erspart. Ich meine, wenn ich mir AJAX schenken möchte, kann ich vielleicht eine Verarbeitungsdatei aufrufen, die im Hintergrund läuft?
|
|
|
08.05.2008, 12:27
|
#6
|
|
TP-Veteran
Registriert seit: Mar 2005
Ort: Weyhe
|
Was spricht dagegen, dass alles in einer zentralen, immer gleich aufgerufenen Datei zu verankern und dann je nach Fall die Unterdateien zu inkludieren?
Du hast doch als Programmierer alle Möglichkeiten und musst nur 2 Minuten nachdenken. 
|
|
|
09.05.2008, 08:03
|
#7
|
|
TP-Insider
Registriert seit: Dec 2005
Ort: Stuttgart
|
Zitat:
Zitat von DSB
Stichwort: Affenformular
|
Zitat:
|
Zitat von php-faq.de
Es heißt Affenformular, weil eine Million Affen dieses Formular eine Million mal aufrufen können, ohne etwas zu bewirken.
|

__________________
Alkohol ist keine Lösung - Alkohol ist ein Destillat.
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 15:51 Uhr.
|
 |