[alg][php] form handling

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Een algemeen topic; het komt er op neer dat ik wel eens zou willen weten hoe de algemene (php) webdev'er omgaat met formulieren en het afhandelen van de data die daarmee geposted wordt.

Wat bedoel je nou precies?
Als ik, en ik noem een simpel voorbeeld, een gastenboek laat tekenen kan de bezoeker bijvoorbeeld drie velden invullen, te weten naam, emailadres en bericht.

Een pagina heeft een structuur als bijvoorbeeld deze.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
  // formulier
  if($_SERVER['REQUEST_METHOD'] != 'POST')
  {

      echo '<form method="post">';
      echo '<input type="text" name="naam">';
      echo '<input type="text" name="email">';
      echo '<input type="text" name="bericht">';
      echo '<input type="submit" value="ok">';
      echo '</form>';

  } else
  // afhandelen
  if ($_SERVER['REQUEST_METHOD'] == 'POST')
  {

      // errorhandling
      $errors = array();
      
      if(strlen($_POST['naam']) < 4) // kunnen ook reg-expr. etc. zijn...
        $errors[] = 'De ingevoerde naam is niet lang genoeg..';

      if(strlen($_POST['bericht']) < 20)
        $errors[] = 'Het ingevoerde bericht is niet lang genoeg..';
        
      if(!empty($errors))
          print_r($errors); // o.i.d.
      else if(empty($errors))
      {

          // iets doen met de POST data

      }


  }


En als je de code bekijkt, zul je zien wat ik bedoel. Het afhandelen van foutieve invoer. Waarbij ik niet zeg dat bovenstaande manier dé manier is die ik altijd gebruik, ik ben juist zoekende naar iets standaards voor den toekomst, echter ben ik zeer benieuwd of daar een algemene mening over is.

Ik ben me er overigens zeer goed van bewust dat dit wellicht per situatie anders is, en dat er soms oplossingen per situatie nodig zijn.
Dat is dus waar ik geen antwoord op wil :)

De hamvraag..
Hoe doen jullie dit bij vrij standaard situaties, dus in het algemeen en bij standaard formulieren?! Gebruiken jullie een bepaalde manier hiervoor? Wellicht een bepaald template, script o.id.?

That's the question..

Edit: Ik realiseer me net dat er ook veel mensen zullen zijn die dit oplossen met Javascript. Misschien is dat niet helemaal waar ik op doel.

[ Voor 13% gewijzigd door Verwijderd op 31-03-2004 10:40 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Precies, ik handel een formulier eerst af met javascript, daarna laat ik hem altijd naar een handle pagina posten zodat die de verwerking doet, dan heb ik de pagina's mooi gescheiden en hoe ik met programmeren van meerdere forms maar in 1 pagina te werken.

Acties:
  • 0 Henk 'm!

  • Bartoz
  • Registratie: November 2000
  • Niet online
Ik ben nu zelf ook bezig op het maken en valideren van formulieren te automatiseren. Dit omdat ik redelijk veel verschillende formulieren moet gaan maken, heb hier al een topic over geopend:

http://gathering.tweakers.net/forum/list_messages/895083

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

In principe is er een javascript controle op bepaalde invoer met een alert als waarschuwing. Moet nog steeds iets gaan doen met wat meer stijl effecten zoals een rode markering enz.

Voor andere zaken zoals directe db queries doe ik ook nog wat testen en verwijder mogelijke problemem met hack attemts. Ik gebruik hier iig geen standaard framework of handler voor, hoewel ik die nog steeds een keer moet bouwen. Zowel voor client side als server side.

Die form handler moet dan ook dmv bijv regex kunnen controlleren of de waarde ook daadwerkelijk klopt. Helaas heb ik te weinig tijd om hier aan te werken. Net zoals mijn ontwikkelde backend geen template support heeft maar alleen een beperkte stijl optie in de config file.

Heb trouwens wel een idee voor zo'n opzet. Maar heb het eigelijk nooit tot uitvoering gebracht. :o

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Aangezien ik dit soort zut helemaal zat was, ben ik bezig aan een (inmiddels qua code en werking alweer zwaar outdated) Dhtml + PHP Formbuilder waarmee je met sleep en pleur een compleet formulier kan samenstellen, deze laten valideren, sql query's aan elk element kan hangen, style properties kan instellen, delen van het formulier showen/hiden, etc.

Uiteindelijk kan je dan aan de serverside ongeveer het volgende doen:

PHP:
1
2
3
4
$formpje = new formBuilder
$formpje->load('formuliernaam');
$formpje->setAction('index.php');
$formpje->display();


en dan staat alles incl. javascript support op je scherm.

De basis van dit alles zijn 2 simpele tabellen in MySQL: 1 tabel forms, en een tabel formelements. De rest mag je er zelf omheen bedenken ;)

edit:

owja. een demo'tje van die zwaar outdated zut vind je op http://www.schizofreend.nl/ ;)

[ Voor 10% gewijzigd door SchizoDuckie op 31-03-2004 10:55 ]

Stop uploading passwords to Github!


Acties:
  • 0 Henk 'm!

  • Bartoz
  • Registratie: November 2000
  • Niet online
Papa Eend schreef op 31 maart 2004 @ 10:55:
Aangezien ik dit soort zut helemaal zat was, ben ik bezig aan een (inmiddels qua code en werking alweer zwaar outdated) Dhtml + PHP Formbuilder waarmee je met sleep en pleur een compleet formulier kan samenstellen, deze laten valideren, sql query's aan elk element kan hangen, style properties kan instellen, delen van het formulier showen/hiden, etc.

Uiteindelijk kan je dan aan de serverside ongeveer het volgende doen:

en dan staat alles incl. javascript support op je scherm.

De basis van dit alles zijn 2 simpele tabellen in MySQL: 1 tabel forms, en een tabel formelements. De rest mag je er zelf omheen bedenken ;)
Dit ziet er niet evrkeerd uit. Heb je dit zelf geschreven ?
En doe je hier nog wat mee ? Als ik jou was zou ik dit als Open Source oid aan gaan bieden. Zit er zelf aan te denken ook zoiets te gaan bouwen met de toepassing in een CMS.

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Dat is meer het generen van forms en niet de datavalidatie ervan, waar het geloof ik om ging. :)

Ik heb een generieke class geschreven met allerlei checks, waarvan ik per project er steeds de dingen uitvis die ik dan nodig heb. Deze checkt dan per item en returned een foutmelding en/of de ingevoerde waarde. :)

Sundown Circus


Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Bartoz schreef op 31 maart 2004 @ 11:42:
[...]


Dit ziet er niet evrkeerd uit. Heb je dit zelf geschreven ?
En doe je hier nog wat mee ? Als ik jou was zou ik dit als Open Source oid aan gaan bieden. Zit er zelf aan te denken ook zoiets te gaan bouwen met de toepassing in een CMS.
Of dit open source gaat weet ik niet, het is namelijk gebaseerd op m'n hele eigen framework en manier van werken, maar straks als alles netjes OO is zou het simpel om te zetten moeten zijn in iets waar iedereen mee kan werken.

en het is uiteraard allemaal zelf geschreven ;)
RedRose schreef op 31 maart 2004 @ 11:44:
[...]
Dat is meer het generen van forms en niet de datavalidatie ervan, waar het geloof ik om ging. :)

Ik heb een generieke class geschreven met allerlei checks, waarvan ik per project er steeds de dingen uitvis die ik dan nodig heb. Deze checkt dan per item en returned een foutmelding en/of de ingevoerde waarde. :)
Óók de datavalidatie zit er in, aan de clientside dan, d.m.v. regexps. Serverside zit er nog een keer aan te komen, maar heeft geen top-prio aangezien dit voornamelijk voor intranet applicaties die niemand gaat zitten te hacken ontwikkeld is :)

Stop uploading passwords to Github!

Pagina: 1