Wat hebben we voor hulpmiddelen om je website interactief te maken ? Denk eerst
eens na over wat voor interactiviteit je nodig hebt. Wil je de gebruiker
een formulier laten invullen en iets met de gegevens doen, ga je een koppeling
maken met een database waarin die gegevens verwerkt worden, wil je een spel
schrijven dat de gebruiker kan spelen, of wil je alleen maar dat de plaatjes
veranderen als de mousepointer erover beweegt ?
De volgende tabel geeft de belangrijkste mogelijkheden die er momenteel zijn.
Client-side | Server-side | |
---|---|---|
Java | Volwaardige programma's (applets) | Databasekoppeling, interactie met server |
Javascript | (Eenvoudige) programma's of checks op de client | - |
PHP | - | Databasekoppeling, meer complexe scripts |
CGI | - | Allerlei programma's en scripts |
Flash/Actionscript |
Vanalles | Weet ik niet |
<form method="GET" action="get_post.php"> <input type="text" name="tekstveld" value="Vul wat in" size="30" maxlength="30"> <p> <input type="submit" value="Verzend gegevens"> </form>
Door op de knop "Verzend gegevens" te drukken wordt het formulier verstuurd naar de webserver.
Bij forms moet je denken aan allerlei invulschermpjes en knoppen die je kunt gebruiken om informatie aan de gebruiker te vragen, zoals naam, adres en een voorkeur voor witbrood, bruinbrood of muesli. Eigenlijk een elektronisch formulier dus.
element | type | beschrijving |
---|---|---|
button | submit|reset|button | Een knop om een formulier te verzenden, wissen of gewoon zomaar een knop. |
input | button | bijna hetzelfde als de button tag maar minder flexibel |
checkbox | selecteren van nul of meer keuzes | |
file | stuur een file van de client naar de server (accept= type constraint) | |
hidden | voor het doorgeven van waarden naar de server, hiermee kun je HTML context geven, dus geheugen | |
image | clickable image | |
password | afgeschermd (maar niet 'secure' !!!) | |
radio | selecteren van precies 1 keuze | |
reset | wis alle velden | |
submit | verstuur deze form naar de server. Er mogen meerdere submit buttons in een form voorkomen. | |
text | plain text | |
label | Geeft een label aan een element | |
fieldset | Maakt een groep van elementen | |
legend | Geeft een groep van elementen een label | |
select | Pull-down menu van keuzes (option tags) | |
textarea | Text-gebied dat meerdere regels kan beslaan |
Bijna alle elementen hebben een naam om ze op de server te kunnen onderscheiden.
Je kunt deze volgorde ook zelf instellen met het attribuut tabindex dat een getal als waarde krijgt. Dat getal is het volgnummer van het element.
<form method="POST" action="mailto:nobody@noserver" enctype="text/plain" onsubmit="window.alert('Formulier gemaild !')" > <input type="text" name="tekstveld" value="Vul wat in" size="30" maxlength="30"> <p> <input type="submit" value="Verzend gegevens"> </form>
Wees je bewust van het feit dat de informatie niet-versleuteld wordt verstuurd als je enctype=text/plain gebruikt. Deze methode is ongeschikt voor het versturen van confidentiele gegevens !
Om het mogelijk te maken om speciale tekens te versturen wordt een codering
gebruikt. Hierbij wordt de hexadecimale ASCII-waarde gebruikt, voorafgegaan
door een %-teken. Spaties worden vervangen door een '+'.
Een paar voorbeelden:
$ | %24 |
[ | %5B |
] | %5D |
Een voordeel van GET is dat het relatief eenvoudig is om een CGI-programma of scriptje te maken dat de parameters uit de URL leest en gebruikt.
Het nadeel van de GET method is dat je gewoon op de URL-regel van de browser alle informatie uit de FORM kunt lezen. Dit is dus niet geschikt om passwords of andere gevoelige informatie te versturen. De POST method is daarvoor meer geschikt. Daarbij wordt de informatie niet aan de URL geplakt maar apart naar de browser gestuurd. Je ziet dan de invoer van het FORM niet op de URL-regel dus dit biedt iets meer privacy. Realiseer je dat de informatie niet versleuteld wordt verstuurd, dus voor echte 'security' moet je met encryptie werken.
Vergelijk het volgende formulier eens met het eerste formulier op deze pagina. Het enige dat veranderd is is de method: die is nu POST in plaats van GET. Kijk naar de URL-regel van je browser.
<form method="POST" action="get_post.php"> <input type="text" name="tekstveld" value="Vul wat in" size="30" maxlength="30"> <p> <input type="submit" value="Verzend gegevens"> </form>
Een ander voordeel van de POST method is dat je meer gegevens kunt versturen dan bij GET omdat sommige browsers of webservers niet met lange URL's kunnen werken.