Formulieren

Info 
Door: Mirax Moeilijkheidsgraad: 1/3
Views:37.858Reacties: 11(Bekijken)
  Log in om zelf te reageren
 Waardering:5.3/10 (3 stemmen)

PHP: een uitgebreide cursus» Wat is PHP? | De eerste stappen in PHP | Variabelen | Formulieren | Structuren | Structuren deel 2 | Veelgebruikte functies | Eigengemaakte functies




Formulieren
Nu weten we wat variabelen zijn, zullen we ze gaan gebruiken. In de vorige tutorial werd nog geclaimd dat je niet altijd de inhoud kent van een variabelen. Dit is in het bijzonder het geval, als je gebruikt maakt van formulieren die door de gebruiker worden ingevuld. Formulieren kennen maken we gewoon in html, bijvoorbeeld zo:

#Code
1
2
3
4
<form action="index.php" method="post">
<input type="text" name="voornaam" /><br />
<input type="submit" name="submit" value="Dit is mijn naam!" /><br />
</form>


De laatste drie regels zijn als het goed is niet nieuw voor je. In de eerste regel wordt het formulier geopend. De form-tag kent twee argumenten, action en method. Action zal misschien direct duidelijk zijn, de informatie die in het formulier wordt ingevuld, wordt gestuurd naar de pagina die tussen de double quotes (") staat, dit kan best de pagina zelf zijn. Method geeft de manier aan waarop dit gebeurt, hierbij zijn er twee veelgebruikte manieren, namelijk get en post. Het verschil is dat via get de informatie wordt weergegeven via de URL, terwijl bij post de informatie min of meer onzichtbaar wordt doorgegeven.

Post gebruiken
De informatie die zo verzonden wordt, kan vervolgens in index.php gebruikt worden. Dit werkt eigenlijk erg eenvoudig,

#Code
1
2
3
<?php
echo $_POST['voornaam'];
?>


Het gebruik is heel eenvoudig, en ik denk dat de coderegel hierboven wel duidelijk is. (Eigenlijk is $_POST een array met alle informatie uit het formulier).

Get gebruiken
Als als method get was gebruikt, dan valt de informatie op dezelfde manier te gebruiken, maar dan met $_GET. Er is wel een verschil. In het eerste geval kom je terecht op index.php, terwijl dit in het geval van de get-method index.php?voornaam=Kees is (als Kees is ingevuld natuurlijk).

Het hangt van de situatie af of je get dan wel post als methode gebruikt. Wanneer je bijvoorbeeld een password doorstuurt, of wanneer je een formulier hebt met veel informatie, is het aan te raden om post te gebruiken. In de meeste gevallen zul je overigens post gebruiken. Dat wil niet zeggen dat $_GET overbodig is. In het bovenstaande geval weet index.php niet dat de informatie achter het vraagteken afkomstig is uit een formulier. Je kunt dus prima verwijzen naar index.php?voornaam=Jan, zonder dat er een formulier aan te pas komt.

Dit werkt niet juist
Het onderstaande voorbeeld (het bestand is index.php) zal in eerste instantie een foutmelding geven, die pas verdwijnt nadat een keer op submit is gedrukt.

#Code
1
2
3
4
5
6
7
<form action="index.php" method="post">
<input type="text" name="voornaam" /><br />
<input type="submit" name="submit" value="Dit is mijn naam!" /><br />
</form>
<?php
echo $_POST['voornaam'];
?>



Dit is echter prima op te lossen met een aantal structuren, wat we in het volgende deel zullen zien.

«Variabelen Structuren »

11 reacties
Vandeput Willem Geplaatst op 16-12-2009 om 10:41
 

Regular
<html>

<head>
<title>
01/01/2010
</title>
</head>

<body>

<p>&nbsp</p>

<h1>

<p align="center"><span style="font-family:Cursive;font-size:48px;font-style:normal;font-weight:normal;text-decoration:none;text-transform:none;color:3300FF;background-color:ffffff;">Afwezigheden</span>
<p style="font-family:verdana,arial,sans-serif;font-size:10px;"></p>
</p>
</h>

<p>&nbsp</p>
<p>&nbsp</p>


<form action="01.01.html" method="post">
<table align="center">
<tr>
<td>Naam:</td>
<td>
<input type="text" name="naam" size="24" maxlength="100" />
</td>
</tr>
<tr>
<td></td>
<td>
<input type="radio" name="afwezig" value="afwezig" /> Afwezig
<input type="radio" name="te laat" value="te laat" /> Te laat
</td>
</tr>
<tr><td></td>
<td>
</td>
</tr>
<td>
</td>
</tr>
<tr>
<td>Reden:</td>
<td>
<textarea rows="4" cols="20" name="comments"></textarea>
</td>
</tr>
<tr><td> </td>
<td>
<input type="submit" value="Verzenden" />
</td>
</tr>
</table>

DIT IS EEN DEEL VAN DE SITE DIE IK AAN HET MAKEN BEN?
MAAR DE BEDOELING WAS DAT DATGENE DAT GEPOST WORDT RECHTSTREEKS OP DE SITE TE ZIEN IS. HOE DOE IK DIT? HET WIL MAAR NIET LUKKEN!? :(
joannis11 Geplaatst op 14-07-2009 om 17:56
 

Regular
Freewebs?

Ik niet!
Ik gebruik www.xtreemhost.com.

Free webhosting.

- 50 mySQL databases MAX (bij free account)
- 5,7 GB geheugen buiten mySQL
- 200 GB per maand brandwidth
- Geen banners, of popups.
alex0705 Geplaatst op 16-10-2008 om 17:42
 

Regular
bij mij ging het eerst ook niet toen ik gewone php pagina's maakte op mijn pc, gebruik een hoster voor gratis website, ik gebruik bv freewebs (www.freewebs.com) kan je lekker gratis site aanmaken, maar daar moet je wel 7 dagen wachten voor je forms kan gebruiken
Jackie Geplaatst op 11-08-2008 om 11:04
 

Regular
Bij het submitten loopt het fout, tenzij een de link naar http://www.powerhost.be/error-404 de bedoeling is :-). Het heeft te maken met waar op de server ik het php-bestand zet. Als ik de php-file in de main directory zet is er geen enkel probleem. Wel wanneer ik ditzelfde bestand in een subdir php zet. Mijn gedacht was dan dat ik de link in het action veld moest veranderen naar action="php/index.php" maar dit blijkt ook niet te werken...
illustrator Geplaatst op 02-07-2008 om 20:45
 

Regular
Aanrader nl; webreus
Aanrader be;jouwdomein
(is wel betalend, maar goedkoop)
Voor de rest snap ik er niet veel meer van...als de form word gesloten moet er toch nog een php-bestand in voorkomen terwijl action en method dan al ingevuld is...(mischien word het wel duidelijker als ik JS leer of de cursus verder lees...)

Pagina 1 2 3 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder