ASP Cursus: les 3

Trefwoorden: ASP cursus, HTML, SSS, Server Side Scripting

1. Vorige lessen


Vorige lessen hadden we het uitgebreid over de belangrijke Response.write functie (les 1) en zijn we begonnen om dynamische webpagina's te maken ahv Visual Basic code (les 2).
We hebben helaas nog niets gezien hoe we een interactie krijgen met de gebruiker en dat is eigenlijk wel de grote bedoeling van SSS.

In deze les zullen we het hebben over de manier hoe we iets aan de gebruiker moeten vragen. Hier komt wel een beetje kennis van HTML bij. Om deze cursus volledig te maken zullen we wel de basis bekijken van formulieren in HTML.

Opm:
  • Mensen die het al behoorlijk moeilijk hadden met de vorige 2 lessen lezen deze best nog eens na! De code die we nu (en later) gaan bekijken zal langer en moeilijker zijn.
  • Zet alle code's die je hier kan vinden eens in een IDE. Gebruik hiervoor Notepad++, dreamweaver, ...
    Een screenshot kan je hier vinden.


2. HTML: Formulieren


Met HTML kunnen we formulieren maken. Deze kan je gebruiken om allerlei scriptjes erachter te zetten om uiteindelijk deze informatie naar de server te halen.
HTML formulieren zijn eigenlijk zeer simpel.

2.1. Get Methode

Wij zullen 2 methodes bespreken die HTML formulieren hanteert. De get methode is de eerste. Nadien zal je wel rap duidelijk worden welke je zelf het beste gebruikt.
CODE
  1. <html>
  2. <body>
  3. <form action="" name="inlog" method="get">
  4. Naam : <input type="text" name="naam" />
  5. Wachtwoord : <input type="password" name="wachtwoord" />
  6. <select name="layout">
  7. <option value="red">Rood</option>
  8. <option value="black">Zwart</option>
  9. <option value="blue">Blauw</option>
  10. </select>
  11. <input type="submit" name="inlog" value="Inloggen" />
  12. </form>
  13. </body>
  14. </html>

Als je deze code even opslaagt als een HTML bestand en dan opent met je browser zal je zien wat dit geeft. Echt het schoonste inlogscherm is het niet maar om er in ASP dingen mee te doen is het ruim voldoende.
Van links naar rechts hebben we een inputbox, inputbox voor wachtwoorden, een lijstselectie en een knop.
Vullen we dit in en drukken we op de knop Inloggen zal je meteen op dezelfde pagina terug komen. Er is blijkbaar niets veranderd maar schijn bedriegt. Als we even kijken in de adresbalk zien we dat de basis http://127.0.0.1/lessen/test.asp een staartje gekregen heeft:
?naam=test&wachtwoord=test&layout=red&inlog=Inloggen

Hoera mijn gegevens zijn bij de server aangezien de server weet wat er allemaal achter komt. Nu is het aan ons om via ASP deze gegevens eruit zien te krijgen.

Opm:
  • Zelf ben ik voorstander van een correcte HTML code. Alles wat je opent moet je in HTML sluiten! Heeft die code geen sluittag zoals de input code dan sluiten we die met />.
  • Zorg er altijd voor dat elk onderdeel van het formulier een unieke naam heeft. Deze naam zullen wel later gebruiken om de gegevens eruit te halen. Als we dus 2 dezelfde namen hebben krijgen we fouten.
  • Let op dat er geen encryptie is toegepast! Ieder persoon op het internet kan deze boodschap lezen. Dit is dus geen goede oplossing om wachtwoorden die zeer gevoelig (zoals bank gegevens) zijn te versturen

2.2. Post methode

Je hebt meteen gezien dat dit eigenlijk wel een risico is! Je gegevens staat zomaar in de adresbalk zodat iedere voorbijganger deze gegevens ziet.
Wel hier is ook een oplossing voor, de post methode.
Deze methode zal je gegevens via het internet versturen maar dan niet tonen in de adresbalk.

Even in praktijk zetten:
CODE
  1. <html>
  2. <body>
  3. <form action="" name="inlog" method="post">
  4. Naam : <input type="text" name="naam" />
  5. Wachtwoord : <input type="password" name="wachtwoord" />
  6. <select name="layout">
  7. <option value="red">Rood</option>
  8. <option value="black">Zwart</option>
  9. <option value="blue">Blauw</option>
  10. </select>
  11. <input type="submit" name="inlog" value="Inloggen" />
  12. </form>
  13. </body>
  14. </html>

Je ziet meteen dat er amper iets veranderd is. De get is in een post veranderd.

2.3. Get of Post

De vraag is onvermijdelijk, welk moet ik gebruiken? Post of Get?
Beide hebben hun voordelen. Als je bijvoorbeeld naar Google kijkt, deze geeft zijn gegevens ook door via een soort van get methode.

Probeer zoveel mogelijk de post methode toe te passen. Als dit niet mogelijk is gebruik dan de get variant.

3. ASP Formulieren lezen


3.1. Request.querystring

Deze methode van ASP werkt samen met de get methode van daarstraks. Je kan hier dus alleen formulieren mee lezen dit via de get methode zijn verzonden.
We maken even in ASP een inlogscriptje waarbij het zowel wachtwoord als gebruikersnaam test is. Als dit verkeerd is moeten we de bezoeker helaas naar een foutmelding sturen.
ASP
  1. <html>
  2. <body>
  3. <%@language="vbscript"%>
  4. <%
  5. dim getal
  6. if request.querystring("inlog") = "Inloggen" then
  7. if request.querystring("naam") = "test" and request.querystring("wachtwoord") = "test" then
  8. response.write("<font color=""" & request.querystring("layout") & """>Een succesvolle inlog meneer " & request.querystring("naam") & "</font>")
  9. else
  10. response.write("Foutieve inloggegevens!")
  11. end if
  12. else
  13. %>
  14. <form action="" name="inlog" method="get">
  15. Naam : <input type="text" name="naam" />
  16. Wachtwoord : <input type="password" name="wachtwoord" />
  17. <select name="layout">
  18. <option value="red">Rood</option>
  19. <option value="black">Zwart</option>
  20. <option value="blue">Blauw</option>
  21. </select>
  22. <input type="submit" name="inlog" value="Inloggen" />
  23. </form>
  24. <%
  25. end if
  26. %>
  27. <body>
  28. </html>

Opm:
  • Merk op dat we gebruik maken van 2 voorwaarden in een if. Die and geeft weer dat hij ook moet voldoen aan de 2de voorwaarde. Plaatsen we hier een or dan moet er 1 van de 2 voorwaarden voldoen.
  • Je ziet dat we na de 2de else een %> toe doen. Dit doen we omdat we anders heel die HTML code van ons formulier in een response.write zouden moeten schrijven. Dit kan nogal wat lang en onoverzichtelijk code met zich meebrengen die we liever niet willen.
  • Vergeet nooit je if te sluiten met end if.

3.2. Request.form

De andere variant van de Request functie is de request.form. Deze maakt het mogelijk om onze andere variant in de HTML formulieren eruit te halen.
Het enige wat we doen met de vorige code is dat alle querystring vervangen moet worden door form en de methode in je HTML formulier van get naar post.
De code zal er zo uitzien:
ASP
  1. <html>
  2. <body>
  3. <%@language="vbscript"%>
  4. <%
  5. dim getal
  6. if request.form("inlog") = "Inloggen" then
  7. if request.form("naam") = "test" and request.form("wachtwoord") = "test" then
  8. response.write("<font color=""" & request.form("layout") & """>Een succesvolle inlog meneer " & request.form("naam") & "</font>")
  9. else
  10. response.write("Foutieve inloggegevens!")
  11. end if
  12. else
  13. %>
  14. <form action="" name="inlog" method="post">
  15. Naam : <input type="text" name="naam" />
  16. Wachtwoord : <input type="password" name="wachtwoord" />
  17. <select name="layout">
  18. <option value="red">Rood</option>
  19. <option value="black">Zwart</option>
  20. <option value="blue">Blauw</option>
  21. </select>
  22. <input type="submit" name="inlog" value="Inloggen" />
  23. </form>
  24. <%
  25. end if
  26. %>
  27. <body>
  28. </html>

4. Volgende les


Volgende les zullen we de voorbereiding zien voor met databanken te werken. Dit is echter niet zo simpel meer. Een kennis SQL is handig (maar niet nodig). We zullen de beginselen van SQL zien om toch verder te kunnen met een databank.
Volgende les zal dus geen ASP zijn. De voorbereiding is wel nodig om met een databank te kunnen werken.

5. Vragen of opmerkingen


Normaal gezien zijn er geen fouten in deze ASP-code gekomen, maar mocht je toch fouten hebben ontdekt kan je dit zeker doorgeven door een Persoonlijk Bericht te sturen.
Zit je ergens vast dan mag je natuurlijk het forum gebruik om je fout mee te delen.
Problemen die betrekking hebben tot de code mag je hier plaatsen.Dit artikel werd geschreven door SMG op zondag 3 december 2006 om 20:45 en werd sindsdien 4198 keer gelezen.

  • Pagina
  • 1 van 1

Bericht geplaatst door thekid op donderdag 7 december 2006 om 12:47:06.
thekid's avatar
Multiviteit: 5273
Moderator
Persoonlijk gebruik ik nooit request.form / request.query gewoonweg omdat je het al kunt oplossen via een simpele request("") en ie kijkt dan in alles.

Ik probeer ook zo weinig mogelijk mijn asp quotes te openen, en de html via Response.Write op het beeld de brengen, daar dit bij grote sites enorm scheelt op snelheid van de pagina.

Nog een opmerking over de "Get" methode, je zit daar met maximaal 255 tekens die je kunt doorgeven, dus vanaf het moment je meer nodig hebt, gebruik je post (die ik persoonlijk ook liever gebruik)

had nog nooit de ASP cursussen gezien zie :D
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1