php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.05.2006, 09:16  
Gast
 
Beiträge: n/a
Standard OOP-Formularüberprüfung

Hallo zusammen,

Schon seit einiger Zeit ist mir die Formularüberprüfung in PHP zu einer lästigen und trotzdem leider
häufigen Aufgabe geworden.
Deshalb bin ich auf der Suche nach einer Klasse, mit der ich die Überprüfung zumindest teilweise automatisieren kann.
Ich habe gehört PEAR stellt dafür etwas bereit, ist das richtig?

Google meint folgendes: Link1, Link2

Auch sinnvoll wäre sicherlich einige Funktionen zu diesem Zwecke zu schreiben...allerdings müßte
ich diese dann immer neu anpassen.

Habt ihr schonmal mit einer solchen Klasse gearbeitet, oder kennt euch damit aus?
Ich hoffe ihr könnt mir helfen.
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.05.2006, 09:35  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

http://pear.php.net/HTML_QuickForm
axo ist offline  
Alt 01.05.2006, 11:04  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Gehts dir um die Formular-Erstellung oder -Validierung?
Zergling-new ist offline  
Alt 01.05.2006, 13:10  
Gast
 
Beiträge: n/a
Standard

Erstellung und anschließende Überprüfung.
Könnte aber notfalls auch in verschiedenen Klassen geregelt werden..
 
Alt 01.05.2006, 18:03  
Erfahrener Benutzer
 
Benutzerbild von Andreas
 
Registriert seit: 22.04.2005
Beiträge: 391
Andreas ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schreib dir doch was eigenes. Mir waren die Pear-Dinger immer zu überladen.
Kleine Tipps:
- Du brachst eine Funktion, um ein Feld zu prüfen. $oForm->pruefen($_POST["feld"],"/regex/","meldung","fehlerfeld").
- Dann brauchst du einen Container um Meldungen zu speichern $oForm->aMeldungen
-und einen Container um die Fehlerhaften Feldnamen zu speichern $oForm->aFehlerfelder


Wenn du dich mit Regexen auskennst, is das was feines
Andreas ist offline  
Alt 01.05.2006, 18:18  
Gast
 
Beiträge: n/a
Standard

Wenn es sich anbietet (tut es nicht immer), benutze ich gerne HTML_QuickForm/HTML_QuickForm_Controller.
 
Alt 01.05.2006, 18:20  
Gast
 
Beiträge: n/a
Standard

Jo, genau das hatte ich vor.
Die PEAR-Bibliothek ist mir auch zu überladen...

Regex sitzen eigentlich. -> Das dürte klappen.

Dennoch ist das nur die halbe Miete.
Ich werde mich nachher mal hinsetzten und einen Ansatz für diese Sache versuchen.

Weitere Vorschläge sind gerne willkommen...
 
Alt 04.05.2006, 18:29  
Gast
 
Beiträge: n/a
Standard

So...Habe mittlerweile etwas Code geschrieben:

PHP-Code:
class FORM {

var 
$content="";
var 
$method="";

   function 
FORM($method) { // Konstruktor
      
strtoupper($method);
      if(
$method=="POST" || $method="GET") {
      
$this->method=$method;
      return 
true;
      }
      else {
      return 
false;
      }
   }

   function 
InputForm($string) {
   
$this->content=$this->content.$string;
   return 
true;
   }
   
   function 
OutputForm() {
   echo 
$this->content;
   return 
true;
   }
   
   function 
CheckSend($submitname) {
      if(
$this->method=="POST") {
         if(isset(
$_POST[$submitname])) return true;
         else return 
false;
      }
      if(
$this->method=="GET") {
         if(isset(
$_GET[$submitname])) return true;
         else return 
false;
      }
   }
   
   function 
CheckElement($name,$regexp="",$checkempty=true) {
      if(
$checkempty) { // auf empty() prüfen
         
if($this->method=="POST") {
            if(empty(
$_POST[$name])) return false;
            else {
               if(
$regexp=="") return true;
               else { 
// Regulären Ausdruck prüfen

               
}
            }
         }
         if(
$this->method=="GET") {
            if(empty(
$_GET[$name])) return false;
            else {
               if(
$regexp=="") return true;
               else { 
// Regulären Ausdruck prüfen

               
}
            }
         }
      }
      if(!
$checkempty) { // nicht auf empty() prüfen
         
if($regexp=="") return true;
         else { 
// Regulären Ausdruck prüfen

         
}
   }


Funktioniert soweit auch ganz gut, allerdings fehlen noch einige wichtige Sachen...

Zum Beispiel stellt sich mir die Frage, ob ich Formularelemente in einer eigenen Methode hinzufügen soll, oder
dem Objekt einfach den HTML-Code vom Formular übergeben soll (wie es im Beispiel oben der Fall ist)?
Das kann dann z.B. so aussehen:
PHP-Code:
function AddElement($name,$HTMLPraefix,$HTMLSuffix,$type,$value="",$class="",$description="",$error="",$error_class="") {
...

Allerdings halte ich diesen Funktionsaufruf für etwas vollgepackt. :wink:
Was meint ihr, macht ein HTMLPräfix und -Suffix bei einer solchen Funktion Sinn, oder lieber immer vorher mit
$formular->InputForm("String") den entsprechenden Präfix einfügen? Sonstige Vorschläge?

Ein Vorteil von einer eigenen Methode wäre z.B. die Fehlerhandhabung.
Das ist auch nochmal eine eigene Sache. Wie gebt ihr denn eure Formular im Fehlerfall aus? Einfach das Formular
neu ausgeben, und unter jedes falsche Element die entsprechende Fehlermeldung schustern, oder etwa auf eine
Seite weiterleiten, wo ein Fehler ausgegeben wird, und ein entsprechender "zurück" Link.
Und wie würdet ihr die Fehlerkommunikation zwischen der Klasse und dem eigentlichen Script machen?
Fehlermethode bereitstellen?

Fraglich ist auch, wie das HTML gehandhabt wird, also ob es dynamisch generiert wird, oder das HTML übernommen wird.

Jemand noch Vorschläge für weitere Methoden?

PS: Achja...langsam frage ich mich, ob dieser Thread noch ins Anfänger Forum paßt.
Ich meine, OOP und Regexp sind nicht so die Merkmale eines Anfängers,
oder?
Als ich den Thread eröffnet habe, habe ich nicht gedacht, dass die Sache so kompliziert wird.
->Mal über eine Verschiebung nachdenken...

Ich weiß, dass diese Sache recht komplex ist, deshlab möchte ich jedem Helfendem schon im Voraus danken.
 
Alt 04.05.2006, 18:35  
Gast
 
Beiträge: n/a
Standard

Soll das eine Programmierübung werden? Den echten Vorteil gegenüber Quickform sehe nämlich leider nicht.
 
Alt 04.05.2006, 18:39  
Gast
 
Beiträge: n/a
Standard

Als Übung ist das wohl auch recht gut geeignet.
Quickform?
 
 


Themen-Optionen
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php oop formular quickform, oop formular php, formular $_post oop, oop php formular, formularüberprüfung oop, oop return, quickform regex, http://www.php.de/php-tipps-2006/39580-oop-formularueberpruefung.html, php formular überprüfung vor speicherung

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:56 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.