Sæt en gæstebog på din side

Indlæs andet indhold på denne side:

Spamsikring af gæstebog med php

Siden er opdateret 16.1.2007

Det er set før og det vil sikkert som ammen i kirken ske igen: En ubeskyttet gæstebog bliver spammet.

Med et administrationsmodul som det, der er vedlagt de to gæstebøger, du kan downloade her, er det ganske vist enkelt og hurtigt at slette den slags uønskede indlæg. Men det er bedre at forebygge end at helbrede.

En sådan beskyttelse er derfor fra min side blevet indbygget i begge gæstebøger fra hjemmesideskolen.dk med virkning fra 16. januar 2007.

Jeg vil derudover tilråde, at du - inden du tager din gæstebog i brug - omdøber gæstebog-siden, så den ikke hedder gaestebog.php men f.eks. 160107.php (datoen i dag) eller 2236.php (klokkeslettet i skrivende stund).

Et sådant filnavn vil en spambot ikke forbinde med en gæstebog, så det varer længere, inden de finder din. Du skal så selvfølgelig sørge for, at alle referencer til den omdøbte fil tilsvarende bliver rettet.

Dertil vil det være en fordel at tilføje et input-felt i formularen, som der ikke må skrives i og som du derfor med css har gjort usynligt for almindelige brugere. Spambotter læser ikke css, så de finder feltet og skriver i feltet:

<span class="ikkese">
<label for="t22">Message: </label>
<textarea id="t22" name="message" rows="2" cols="30"></textarea>
</span>

Der er så i css lavet en definition for klassen .ikkese:

.ikkese {
 display: none;
 }

Formular-tjek

Til slut skal du i php indsætte et tjek på feltet - er der skrevet i feltet, blokeres indlægget og der viderestilles til en fejlside (som selvfølgelig ikke må informere om, hvorfor indlægget blev blokeret).

Læg denne kode øverst i det script, der modtager data fra formularen:

# er der trykket på "Send" ?
if (isset($_POST['submit'])) {

# er der skrevet i feltet "message" - det er ikke tomt?
if (!empty($_POST['message'])) {
    header ("Location: blokeret.php");
  exit;
}

Koden forudsætter, at det forbudte felt har fået name="message" (ingen andre felter i formularen må så have det navn!) og blokerer for videre behandling, hvis det felt ikke er tomt. I stedet sendes videre til en fejlside, her kaldet blokeret.php.

Du skal så naturligvis lave en side blokeret.php, hvor du skriver en ikke alt for oplysende fejlmeddelelse om, at noget gik galt.

^ Tilbage til sidens top

Valid XHTML og CSS / Copyright © Hjemmesideskolen februar 2005
Hjemmesideskolen
Du er her: Forsiden - scripts - Sæt en gæstebog på din side
Brugere lige nu: 1
Home Mail