phpbar.de logo

Mailinglisten-Archive

?? Per PHP Formulare vaidieren und an MYSQL transferieren ??

?? Per PHP Formulare vaidieren und an MYSQL transferieren ??

Fanatic-System tkortmann at fanatic-system.de
Sam Apr 19 13:22:19 CEST 2003


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