Gå direkt till innehållet

FYSIKUMS WEBB- OCH MEDIAKURSER

Formulär tar emot besökares inmatade data

Överallt hittar man formulär ute på webben, och förväntas snällt fylla i allt från e-postadress och favoritfärg till kreditkortsnummer och namn på närmaste anhörig. Och inte bara i samband med att man gör en beställning on-line, utan allt oftare bara för att bli medlem i något som vid närmare betraktelse bara visar sig vara en förtäckt reklamgimmick.

Men så finns det ju också webbtjänster baserade på ifyllningsformulär som vi självmant och gärna använder, t.ex sökning i webbkataloger, onlinebanker, undersökningar, e-post, e-vykort eller webchattar. På hemsidor kan man också hitta tämligen harmlösa gästböcker och feedback-formulär, och kanske en eller annan webbkonferens.

Om du till äventyrs aldrig har sett ett formulär ute på webben kan du hitta ett att leka med på adressen http://internet.physto.se/skript/inputchk/post.

Formulär kräver ett skript på servern för att fungera

För nybörjar-webbsidehackern blir snabbt GIF-bilder, tabeller och ramar för enkelt och banalt, och längtan efter mer interaktiva element att lägga i webbsidorna blir allt starkare. Men tyvärr - det är inte lika lätt att skaffa sig en gästbok som det är att lägga in en tabell eller en GIF-animering. Att skapa själva formuläret är ingen konst, det är bara en handfull ganska enkla HTML-element man måste lära sig (Se kapitlet "HTML-kod för formulär"). Problemet är att de uppgifter användaren knappar in i formuläret måste tas omhand, bearbetas och en svars- eller resultatsida måste sammanställas och skickas tillbaka till användaren. Allt detta kan inte göras med HTML, som ju när allt kommer omkring inte är ett programmeringsspråk utan ett siduppmärkningsspråk.

Serversidesskript bearbetar indata och skickar ett svar

Det som krävs är att webbsideförfattaren dels måste skriva en HTML-sida med ett formulär, men också se till att det på servern finns ett program, i dessa sammanhang kallat ett serversides-skript, som tar emot data från formuläret och gör alla de nödvändiga manipuleringarna eller beräkningarna. Ibland klarar serversidesskriptet datahanteringen själv, andra gånger måste det skriva eller läsa i datafiler, och ofta anropar det ett annat program, t.ex en databashanterare. Det är också serversidesskriptet som ser till att användaren får ett lämpligt gensvar i form av en dynamiskt skapad webbsida, t.ex resultatet av en sökning eller en bekräftelse på att ett inlägg skrivits in i en gästbok.

Två tekniker för serversidesskript

Rent tekniskt finns på webbservrar i dag huvudsakligen två kategorier av serversidesskript: CGI-skript och dess efterföljare, samt inbäddad kod.

CGI är den äldre av de två teknikerna och utvecklades först för webbservern NCSA HTTPd i början av 1990-talet. CGI-skript är regelrätta program skrivna i ett programmeringsspråk, vanligtvis Perl men också C, C++ eller VirtualBasic, eller också i ett scriptspråk knutet till serverns operativsystem, som t.ex cshell i UNIX eller AppleScript på Macintosh. CGI-skriptet startas av webbservern, som skickar indata till skriptet och tar emot skriptets utdata. Standarden "CGI" beskriver exakt hur data matas in resp. ut ur skriptet. Andra webbservertillverkare har tagit fram egna standarder för detta, bl.a standarden ISAPI för Microsofts servrar och NSAPI för servrar som en gång utvecklades av Netscape.

Med inbäddad kod menas kod skriven i något webbskriptspråk som infogas mellan HTML-koden i ett HTML-dokument, och som översätts till HTML-kod av en skripttolk för språket innan dokumentet skickas till beökarens webbläsare. Vanliga språk för inbäddad kod är PHP, ASP, JSP, Lasso och ColdFusion. Det visar sig att detta sätt att hantera formulärdata är mer effektivt än den äldre CGI-tekniken, så alltfler webbplatser går över till att kodas med inbäddad kod.

Jag kommer i de närmaste kapitlen koncentrera mig på hur du bäst skapar de formulär som webbsidebesökaren får se och förväntas fylla i. De tekniker som behövs på serversidan för att ta hand om de inmatade värdena får bli ämne för andra avdelningar i denna kurs. En sak i taget...

FORTSÄTT

kodvalidering:
tester:
HTTP-data:
sidstruktur:
resurser:
välj stilmall:
välj typsnitt:

Senast uppdaterad 8 maj 2007