Mailinglisten-Archive |
Hallo, Hans-Joachim Grüßner schrieb: > Meine Probleme und Fragen: > > 1) wie kriege ich das Resultset an das mit 'form action=.. ' übergebene > php-Script bzw. die php-Seite übergeben ? Oder muß ich dort das Result > neu zusammenstellen ? > Wenn letzteres ja, wie kriege ich die Datenbank in der aufrufenden > PHP-Seite ordnungsgemäß geschlossen um etwaige Datenkonflikte zu > vermeiden ? Da Du die Daten ja im Formular anzeigen wirst, hast Du die Daten ja schon zur Übergabe bereitgestellt. Ein MySql Result kannst Du nicht an eine andere Seite via Get/Post übertragen. -Daten aus Tabelle ins Formular eintragen. -Wenn der User das Formular absendet, validieren und eintragen. > 2) Wie kann ich innerhalb des Formulars erkennen, welche rows und values > vom User geändert wurden ? Als faule Socke will ich natürlich nur die > updaten und nicht etwa alles. Bei kleinen Sets (z.B Adressen o.ä.) kannst Du evtl. eine Kopie der Daten in Hidden Feldern im Formular übertragen. Ist Hiddenfild nicht gleich dem normalen Feld, ist es geändert worden. Bei großen Datenfeldern, (z.B Textfeld mit 1500 Zeichen) ein Hiddenfild mit einer Prüfsumme. Bei großen Sets, eine ID des Datensatzes mit dem Formular übertragen, dann alten Satz aus DB holen und mit den neuen Daten vergleichen. > 3) Wie kann ich innerhalb des Formulars die User-Eingaben validieren ? > - erstmal basismäßig die Typen (korrektes Datum, in INT oder > FLOAT-Felder keine Chars usw. > - 'advanced' auch eigene Validierungsroutinen zur Überprüfung der > Anwendungslogik einbinden ? Wenn es flexibel sein soll, mit regulären ausdrücken (Regex). Beispiel aus Selfaktuell zum Thema Email Adresse: function check_email($email) { // RegEx begin $nonascii = "\x80-\xff"; # Non-ASCII-Chars are not allowed $nqtext = "[^\\\\$nonascii\015\012\"]"; $qchar = "\\\\[^$nonascii]"; $protocol = '(?:mailto:)'; $normuser = '[a-zA-Z0-9][a-zA-Z0-9_.-]*'; $quotedstring = "\"(?:$nqtext|$qchar)+\""; $user_part = "(?:$normuser|$quotedstring)"; $dom_mainpart = '[a-zA-Z0-9][a-zA-Z0-9._-]*\\.'; $dom_subpart = '(?:[a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*'; $dom_tldpart = '[a-zA-Z]{2,5}'; $domain_part = "$dom_subpart$dom_mainpart$dom_tldpart"; $regex = "$protocol?$user_part\@$domain_part"; // RegEx end return preg_match("/^$regex$/",$email); } Hoffe ich konnte Dir weiterhelfen. Gruß Thorsten -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive