Spørsmål og svar

Tilbake
Stikkord:  

Hvordan lager jeg kontakt- eller tilbakemeldingsskjema?
Vi anbefaler at skjema beskyttes med en captcha-løsning, f.eks. hCaptcha eller reCaptcha, for å redusere spamming.

Alternativ 1: Vårt standardskjema

Dersom du ønsker et kontakt- eller tilbakemeldingsskjema på dine websider, slik at besøkende kan sende deg tilbakemelding på epost, så kan du bruke vårt standard CGI-script for dette.

Dette forutsetter at du har litt kunnskap om HTML-kode, og at du har kontroll på epost-adressene som brukes av skjemaet, både avsender og mottaker.

Domeneshop må dessuten være godkjent utsender av e-post for domenet i avsenderadressen (DMARC må validere når vi sender).

Lag et html-skjema (<FORM>), og sett action="https://www.domeneshop.no/cgi-bin/mailto.cgi" accept-charset="ISO-8859-1". Legg inn hidden-felter med verdier for "_to", "_from", "_subject" og "_resulturl" inne i html-skjemaet. Alle input-felter som ikke begynner med underscore, blir sendt som en del av meldingskroppen i epost-tilbakemeldingen.

Eksempel:

<form method="POST" action="https://www.domeneshop.no/cgi-bin/mailto.cgi" accept-charset="ISO-8859-1">
<input type="hidden" name="_to" value="dittnavn@dittdomene.no">
<input type="hidden" name="_from" value="feedback@dittdomene.no">
<input type="hidden" name="_subject" value="Tilbakemelding">
<input type="hidden" name="_resulturl"
value="https://www.domeneshop.no/eksempler/kvittering.html">
...
<input type="text" name="Felt1" value="Skriv inn ditt spørsmål">
<input type="checkbox" name="Felt2" value="Ja">
<input type="radio" name="Felt3" value="1">
<input type="radio" name="Felt3" value="2">
...
<input type="submit" value="Send">
</form>

Deretter logger du inn i kontrollpanelet og registrerer epost-adressene du har oppgitt i "_from"- og "_to"-feltene som gyldige avsendere og mottakere for tilbakemeldingsskjemaet. (Klikk på "Administrere webhotell", og deretter på "Se på/endre" til høyre for "Tilbakemeldingsskjema".)

Både avsender og mottakeradresse må være på ditt domene, og må være bekreftet i kontrollpanelet.

Dette må gjøres for webhotell som skal ha slikt skjema, uavhengig av om avsender og mottaker er godkjente og verifiserte for et annet webhotell.


Alternativ 2: Lage skjemaet selv

Dersom du har Webhotell Medium eller større, så har du mulighet for å lage egne PHP- eller CGI-scripts. Dette er egnet kun for erfarne brukere som også kan litt programmering.

Eksempelkode i PHP følger nedenfor. Her har vi antatt at input-feltene fra HTML-skjemaet (dette lager du selv!) heter "name" (navnet på innsender), "email" (epostadressen til innsender) og "message" (meldingen innsender skrev). Scriptet tillater deg ikke å klikke på "reply"/"svar" for å sende svar på henvendelsen direkte til den påståtte avsenderen. Det er viktig at du ikke lar skjemaet fylle ut noe som har noe med avsender eller mottaker å gjøre, og at begge disse adressene er under din kontroll.

<?php
// Hent verdiene fra skjemaet
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

// Sjekk ugyldige tegn i navn og epostadresse.
// Godta visse europeiske spesialbokstaver.
// Hindre meldinger lengre enn 500 tegn.
// Dette gjør det vanskelig å spamme via tilbakemeldingsskjemaet.

if(preg_match("#^[-a-zA-Z0-9éèÉÈäöæøåÄÖÆØÅ._ ]+$#",$name) AND
   preg_match("#^[-a-zA-Z0-9.@+!=()_:]+$#",$email) AND
   strlen($message) < 500) {

  if (mail("dittnavn@dittdomene.no", // din epostadresse
           "Tilbakemelding fra hjemmesiden", // emne
           "Melding fra $name <$email>:\n\n$message", // meldingsteksten
           "From: Tilbakemeldingsskjema <dittnavn@dittdomene.no>" // avsender
          )) {
?>

<p>Meldingen er sendt.</p>

<?php
  } else {
?>

<p>Klarte ikke å sende meldingen via epost,
vennligst ta kontakt via telefon eller brev.</p>

<?php
} else {
?>

<p>Ugyldig forespørsel. Forsøket har blitt logget.
OBS: navn kan ikke inneholde andre tegn enn: <code>-a-z0-9éèäöæøå._</code>,
epostadresse kun <code>-a-zA-Z0-9.@+!=()_:</code>,
og meldingen får ikke være lengre enn 500 tegn.</p>
<p>Invalid request. The attempt has been logged.</p>

<?php
  # Her kan du kode en rutine som logger forsøket på å gå rundt systemet!
}
?>

© 2024 Domeneshop AS · Om oss · Vilkår · Personvern