FormMail
FormMail (Copyright 1996-1997 Matt Wright) er etuniverselt cgi script, der gør det muligt at
lade en person taste oplysninger i nogle felter
på et websted, hvorefter de indtastede
oplysninger sendes til en angivet e-mail adresse
ved tryk på en knap.
Modtageren af e-mailen har bagefter ikke brug for
hverken at lave en udpakning eller lave andre
ændringer af mailen for at kunne læse den.
Med FormMail scriptet kan en besøgende på skolens
hjemmeside indtaste navn og adresse
samt evt. angive et ønske om en brochure,
hvorefter de indtastede oplysninger automatisk
sendes uden brug af en e-mail klient eller andre
programmer. Men det kræver altså at man
har en e-mail adresse til at modtage de indtastede
oplysninger.
Scriptet stilles gratis til rådighed af
Matt Wright, der har lavet scriptet.
»
http://www.worldwidemart.com/scripts/.Hvem kan anvende FormMail?
Alle websteder på UNI•Cs webhotel kan anvende cgi-scriptet /zz_cgi/FMproxy.cgi. For at kunne anvende FormMail fordres viden om HTML og specielt lidt kendskab til brugen af <form> tags. Med eksemplet senere i denne tekst som udgangspunkt vil det være muligt at lave en egen formular, der opfylder brugerens krav.
Hvis du allerede kender til at bruge <form>tag, er det kun nødvendigt at lære et enkelt nyt tag (input) for at kunne bruge FormMail. Dog vil de fleste nok foretrække en lidt mere avanceret formular, der kræver en række nye tags, der er udviklet til det formål at lave gode funktionelle formularer.
For at kunne bruge FormMail på hjemmesiden kræveskun ganske få specielle <form> tags.
For at scriptet kan udføre den handling "action",
der forventes, skal <form> pege på den
(fysiske) placering af filen FormMail.cgi på
web-serverens hard-disk.
Metoden der skal bruges for at sende formularen
som mail er POST (med store bogstaver). Den
obligatoriske startkode i form afdelingen bliver:
<form
ACTION="/zz_cgi/FMproxy.cgi" METHOD="POST">
Ovenstående sender "ingenting", der mangler
blandt andet oplysninger om, hvor mailen skal
sendes til.
Det skal med et input-tag angives, hvor deindtastede oplysninger skal sendes hen. Feltet
kaldes "recipient" (modtager).
Det er desuden nødvendigt at alle lovlige værdier
af recipient-feltet er nævnt på hver sin linie
i filen:
/home/etc/godkendte-modtagere.txt
Hvis du bruger ftp via en browser, så kan du se denne fil ved at skrive ftp://<bruger>@<din-URL>/./etc
Dette er nødvendigt for at sikre mod at
udenforstående bruger dit websted til at sende
"spam" til alle mulige.
Input tagget skal se således ud:
<input type=hidden
name="recipient" value="email@your.host.dk">
Teksten:
email@your.host.dk
skal ændres til DIN modtager, alt det andet skal
stå præcis som ovenfor. Det er muligt at sende
til flere adresser samtidig - så skrives de
efter hinanden adskilt af komma.
Præcis den samme tekst som skrives i
value-feltet skal indsættes i
filen /home/etc/godkendte-modtagere.txt.
Bemærk at feltet er af typen hidden. Der er ingen
grund til, at alle og enhver kan se, hvor disse
e-mail ender - eller værre endnu - kan rette i
feltets adresseoplysninger.
Den angivne modtager vil få en mail, der normaltsom afsender har UNI-C
(webadm@sektornet.dk).
Ud fra en sendt formular er det altså ikke
automatisk muligt at se, hvem der har trykket på
send-knappen. Derfor vil man oftest ha' et felt,
der beder tasteren om at identificere sig
selv.
Det er muligt - men vi fraråder det - at lade
tasteren angive afsenderadressen (feltet hedder
"email"). Når vi fraråder det, er det fordi
formularen slet ikke når frem til modtageren,
hvis afsenderadressen ikke er korrekt.
I stedet kan man lave et andet indtastningsfelt
(input tag), der hedder noget andet end lige
præcis "email" - f.eks. kan det hedde "afsender" -
og så bruger man indholdet af dette felt til
at svare tasteren. På den måde er det
modtageren, der får at vide om
afsender-adressen er lovlig.
Det er f.eks. også praktisk selv at kunne angiveen titel på e-mailen til modtageren. Det gør det lettere at filtrere e-mail fra hjemmesiden fra al anden post. Dertil bruges feltet titel (subject). Herunder er vist et eksempel på et sådant input felt, hvor feltet også er gjort til typen hidden.
<input type=hiddenname="subject" value="Afsendt med FormMail">
Det eneste der skal rettes her er
Afsendt med FormMail
resten skal indtastes præcis som ovenfor.
Hvad skal der stå på skærmen, når formularen ersendt afsted som en e-mail? For at give en slags
kvittering på afsendelsen, kan der f.eks vises en
ny webside.
Husk URL skal erstattes med en fuldstændig
adresse af typen
http://www.sektornet.dk/kvittering.html.
<INPUT TYPE="hidden"
NAME="redirect" VALUE="URL">
Har du krav om at der skal være indhold i nogleaf felterne inden de sendes? I eksemplet herunder kræves, at der skal stå noget i felterne navn og telefon inden formularen sendes. Eller rettere den kan ikke sendes før der står et eller andet i henholdsvis feltet navn og telefon.
<INPUT TYPE="hidden"NAME="required" value="navn,telefon">
Alle felter sendes med e-mailen med nedenståendetag, også de hvor felter der ikke er tastet noget i.
<INPUT TYPE="hidden"NAME="print_blank_fields" VALUE=1>
Der skal selvfølgelig også være deindtastningsfelter, hvor den besøgende på web-siden kan indtaste sine data. Bemærk, at disse er af typen text. Value behøver ikke være der, men det kan være praktisk med en lille anvisning af, hvad der skal indtastes i feltet:
Nedenfor kan telefonnummeret indtastes i et felt med længden 20. Der står "telefon" i feltet fra starten. Det er også rart med afkrydsningsknapper. Her skal typen være radio. Ovenstående laver to afkrydsningsfelter til henholdsvis svaret "Ja" og "Nej".
"svar" er ikke tekst, men derimod navnet på feltet.
Her kommer et indtastningsfelt der gør det
muligt at indtaste en større besked.
Størrelsen på indtastningsfeltet kan ændres med
rows og cols.
Traditionelt har man ikke angivet, hvilket tegnsæt formularen benyttede.
Dette kan give problemer med de danske tegn, hvis man f.eks. skriver sin formular i utf-8-omgivelser.
Nogle browsere reagerer efter hensigten, hvis man i form-delen angiver at man ønsker karaktersættet omsat til iso-8859-1 således:
<form accept-charset="ISO-8859-1" METHOD="POST"
ACTION="/zz_cgi/FMproxy.cgi">
Men nu tilføjer vi et input-felt, hvor man kan angive tegnsættet. Eksemplet viser hvad man skal skrive, hvis man bruger utf-8:
<INPUT TYPE="hidden" NAME="content-type"
VALUE="text/plain; charset=utf-8; format=flowed">
Scriptet reagerer altså på feltet ved navn "content-type".
FormMail tilpasses via felter med specielle navne.Nedenstående viser en oversigt over udvalgte muligheder.
- recipient
Dette obligatoriske felt giver dig mulighed for at angive modtageradressen for den e-mail, som bliver sendt efter endt udfyldelse af formularen. Normalt er dette felt "HIDDEN", men det er også muligt at lade brugeren selv angive en modtageradresse (dette kan ses i formulareksemplet). Det vil dog kun virke efter hensigten, hvis tasteren skriver een af de lovlige modtageradresser, som står nævnt i filen /home/etc/godkendte-modtagere.txt.
<INPUT TYPE="hidden" NAME="recipient" VALUE="webadm@sektornet.dk">
- subject
Giver dig mulighed for at angive emailens subject. Hvis dette felt udelades vil subject blive "WWW Form Submission".
<INPUT TYPE="hidden" NAME="subject" VALUE="Svar fra formular">
- email - brug hellere f.eks. afsender
Giver brugeren mulighed for at angive sin egen afsenderadresse. Indholdet af dette felt vil blive indsat i emailens From-felt, hvilket vil give modtageren mulighed for at svare for modtagelsen af emailen. Hvis du ønsker at brugeren SKAL indtaste en emailadresse, skal du angive "email" i listen over obligatoriske felter - se under feltet "required".
<INPUT NAME="email">
Men BEMÆRK at formularen ikke bliver sendt, hvis AFSENDER-adressen er ulovlig. Så det er bedre at kalde feltet noget andet - og så klippe indholdet af feltet ud af e-mailen, når du ønsker at svare tasteren.
- redirect
Dette felt er ikke obligatorisk, men anbefales kraftigt. Her gives der mulighed for at angive hvilket htmldokument, som skal vises efter endt behandling af formularen.
<INPUT TYPE="hidden" NAME="redirect" VALUE="http://www.sektornet.dk/svar.html">
- required
Her gives der mulighed for at angive en liste over felter som skal udfyldes. Hvis ikke brugeren udfylder alle de angivne felter vil brugeren modtage en fejlmeddelelse (se "missing_fields_redirect").
<INPUT TYPE="hidden" NAME="required" VALUE="afsender,telefon">
- print_blank_fields
Normalt vil FormMail ikke inkludere tomme felter i e-mailen, men med dette felt er det muligt at angive at også tomme felter skal med.
<INPUT TYPE="hidden" NAME="print_blank_fields" VALUE="1">
missing_fields_redirect
Her er det muligt at angive en URL for et html-dokument, som indeholder den fejlmeddelelse brugeren skal have når denne ikke udfylder de felter, som er angivet i feltet "required".
<INPUT TYPE="hidden" NAME="missing_fields_redirect" VALUE="http://www.sektornet.dk/">
Alt det der ser ud som det her:
<!--kommentar -->
er kommentarer, der ikke behøver være der for at få scriptet til at fungere, men som siger lidt om, hvad de forskellige HTML-koder gør.
<HTML>
<HEAD>
<TITLE>FormMail</TITLE>
</HEAD>
<BODY>
<b>FORMMAIL</b>
<!-- FORMMAIL DELEN STARTER HER -->
<FORM ACTION="/zz_cgi/FMproxy.cgi" METHOD="POST">
<!--Her starter Form delen. Hvor ligger FormMail scriptet-->
<INPUT TYPE="hidden" NAME="recipient" VALUE="snet@uni-c.dk">
<!--Hvortil skal e-mailen sendes.
Lige nu sendes den til UNI•C!-->
<INPUT TYPE="hidden" NAME="subject" VALUE="Sendt med FormMail">
<!--Titlen på e-mailen-->
<INPUT TYPE="hidden" NAME="redirect" VALUE="URL">
<!--Erstat med en fuldstændig adresse af typen
http://www.sektornet.dk/kvittering -->
<INPUT TYPE="hidden" NAME="required value="navn,telefon">
<!--Her angives, at felterne navn og telefon er
obligatoriske -required-->
<INPUT TYPE="hidden" NAME="print_blank_fields" VALUE=1>
<!--Alle felter sendes som e-mail,
også de felter der ikke er tastet noget i.-->
<b>Indtast dit for- og efternavn?</b> <!--Ganske almindelig tekst-->
<INPUT TYPE="text" NAME="navn" SIZE=40 VALUE="Dit navn">
<!--Et indtastningsfelt til navn-->
<b>Din e-mail adresse? </b>
<INPUT TYPE="text" NAME="afsender" SIZE=40 VALUE="navn@adresse">
<b>Telefonnummer? </H4>
<INPUT TYPE="text" NAME="telefon" SIZE=20>
<b>Er Formmail let at bruge?</b>
Ja<INPUT TYPE="radio" NAME="formmail-let" VALUE="Ja">
Nej<INPUT TYPE="radio" NAME="formmail-let" VALUE="Nej" CHECKED>
<!--Der kommer til at stå "Er FormMail let at bruge?"
på skærmen.-->
<b>Har du noget at tilføje? </b>
<TEXTAREA NAME="Comments" ROWS=10 COLS=50> </TEXTAREA>
<!--Der dannes et stort felt på skærmen,
hvor der kan tilføjes en flerlinjet bemærkning -->
<INPUT TYPE="submit" VALUE="Send">
<!--Knap med teksten Send.
Knappen sender naturligtvis også det indtastede-->
<INPUT TYPE="reset" VALUE="Fortryd">
<!--Knap der sletter hvad der måtte stå i felterne-->
</FORM>
<!--Form-delen slutter her-->
</BODY>
</HTML>
Koden minder en del om eksemplet ovenfor - men er ikke helt magen til.
Om UNI•C
Kontakt
Nyheder og nyhedsbreve
Publikationer
Job
English
Sitemap
Teknik
Oplæsning
Søg
