Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Spam - Nej tak!

Forord

I denne artikel vil du lære hvordan du gør det sværere for spammere at spamme din gæstebog til, eller noget helt andet! Det laves via. PHP med funktionen rand().

Efter denne artikel skal man gerne være rustet til at sikre sin gæstebog lidt.

Indholdsfortegnelse

1.0   Eksempel på brug af rand
   1.1   Læg to tilfældige tal sammen
2.0   Rand og input felter
3.0   Den endelige kode
4.0   Mere
   4.1   Kan jeg gøre mere for at stoppe disse spammere?
   4.2   Kan jeg læse mere om funktionen rand?

Dette er min første artikel på Rowl og jeg vil gøre det så godt jeg kan. Jeg tror vi alle sammen er godt trætte af at få en omgang spam i sin gæstebog, det vil jeg i denne artikel lære dig at gøre det sværere for spammerne at spamme din hjemmeside.

Vi gør brug af funktionen rand(), rand står for random, og oversat til dansk betyder det tilfældigt. Rand funktionen kan bruges på flere forskellige måder, men vi skal bruge den til at hive nogle tilfældige tal ud.

1.0  Eksempel på brug af rand

  1. <html>
  2. <head>
  3. <title>Spam - Nej tak!</title>
  4. </head>
  5. <body>
  6. <?php
  7. $tal = rand(1, 9); /* Det første tal siger hvad tal det skal starte fra, og det sidste tal er det tal det skal slutte ved, den tager et tal mellem mellem 0 og 10. */

  8. print $tal; // Her udskriver vi det tilfældige tal
  9. ?>
  10. </body>
  11. </html>

Nu har du lært at lave et tilfæligt tal, nu skal vi prøve at lave 2 tilfældige tal, og lægge dem sammen - ja hvis du tænker logisk kan du nok selv regne ud hvordan man gør.

1.1  Læg to tilfældige tal sammen

  1. <html>
  2. <head>
  3. <title>Spam - Nej tak!</title>
  4. </head>
  5. <body>
  6. <?php
  7. $tal1 = rand(1, 9); // Vi laver første tilfældige tal, et tal mellem 0 og 10
  8. $tal2 = rand(1,9); // Vi laver andet tilfældige tal, et tal melllem 0 og 10

  9. print $tal1 + $tal2; // Vi plusser de 2 tilfældige tal
  10. ?>
  11. </body>
  12. </html>

Det var ikke så svært igen, det er simpelt og enkelt, vi tildeler 2 variabler vores rand funktion, som generer et nyt tal hver gang man opdaterer siden, derefter plusser vi dem i en print.

2.0  Rand og input felter

Nu har du lært at bruge rand funktionen til at udskrive noget på selve siden, nu skal du lære at tildele et felt værdien.
  1. <html>
  2. <head>
  3. <title>Spam - Nej tak!</title>
  4. </head>
  5. <body>
  6. <?php
  7. $tal = rand(1, 9); // Laver vores tilfældige tal igen
  8. ?>
  9. <input type="hidden" value="<?php print $tal; ?>" name="tal" />
  10. </body>
  11. </html>

Det vi gør er at vi laver et input-felt der er hidden, det vil sige det er skjult og brugeren ikke kan se det, kun i kildekoden. Vi sætter feltets value, værdi til det tilfældige tal vi har lavet via. rand, vi giver feltet navnet tal.
Hvis du har brug for det tilfældige tal kan du bare "poste" det senere.

3.0  Den endelige kode

Nu er vi endelig kommet til koden, hvor det hele sker.
  1. <html>
  2. <head>
  3. <title>Spam - Nej tak!</title>
  4. </head>
  5. <body>
  6. <?php
  7. if($_GET["action"] == "check") { // Hvis aktionen er lig med check,
  8.     $brugerTotal = $_POST["brugerTotal"]; // Vi henter det brugeren har skrevet regnestykkerne giver
  9.     $postetTal1 = $_POST["tal1"]; // Vi henter vores "camouflerede" felt, der ikke kan ses
  10.     $postetTal2 = $_POST["tal2"]; // Vi henter værdien fra vores andet "camouflerede" felt, der heller ikke kan ses :P
  11.     $rigtigTotal = $postetTal1 + $postetTal2; // Vi plusser de 2 tal
  12.     
  13.     if($brugerTotal == $rigtigTotal) { // Vi tjekker om brugeren har regnet rigtigt
  14.         print "Du regnede rigtigt!"; // Hvis det er rigtigt får han en "tillykke" besked
  15.     } else { // hvis det ikke er rigtigt
  16.         print "Det var forkert, det gav ".$rigtigTotal;
  17.     }
  18. } else { // Hvis action, aktionen ikke er lig med check, skal formen vises
  19.     $tal1 = rand(1, 9); // Generer et tilfældigt tal
  20.     $tal2 = rand(1, 9); // Generer et tilfældigt tal til
  21.     ?>
  22.     <form action="fil.php?action=check" method="POST">

  23.          <input type="hidden" name="tal1" value="<?php print $tal1; ?>" />
  24.          <input type="hidden" name="tal2" value="<?php print $tal2; ?>" />

  25.          <!-- Vi laver de 2 felter, der ikke kan ses, og som indeholder de tilfældige tal !-->

  26.          Hvad giver <?php print $tal1 . " + " . $tal2 . "?"; ?><br />
  27.          Skriv det her - <input type="text" name="brugerTotal" />
  28.          <input type="submit" value="Færdig!" />

  29.          <!-- Brugeren får feltet han/hun kan skrive hvad regnestykket giver i, og derefter kan man trykke på knappen !-->    

  30.     </form>
  31.     <?php
  32. }
  33. ?>
  34. </body>
  35. </html>

Nu burde du være rustet til at kunne sikre din gæstebog bedre, imod disse dumme spammere.

4.0  Mere

4.1  Kan jeg gøre mere for at stoppe disse spammere?


Ja, det kan du godt, du kan indsætte denne lille kode på din hjemmeside.
  •  <a href="http://destroyspam.net" title="Bekæmp spam i dag!">Bekæmp spam i dag!</a>
Jeg kan også henvise til et såkaldt Capatcha script ak har lavet. Det kan findes på hans hjemmeside, www.akmedia.dk

4.2  Kan jeg læse mere om funktionen rand?

Ja sagtens.
På dansk
På engelsk

Held og lykke!

Sidst redigeret 16:21 25/11/2007
Oprettet af:

PHP

Point modtaget: 100

Rate:
19:06 14/10/2007

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
God artikel. Lærte da lidt, men noget af det forstod jeg godt nok heller ikke .. :P
Oprettet af:
  Mail
11:46 13/11/2007
Kan du fortælle hvad du ikke forstod, så kan jeg prøve at gøre det bedre næste gang ^^
Oprettet af:
  Mail
21:20 17/11/2007
Fin artikel.
du forklarer rimelig men kan også bedre lide linjeforklaring
Oprettet af:
  Mail
00:07 13/02/2008
Super artikel, lige hvad jeg havede brug for 5/5 :)
Oprettet af:
  Mail
21:23 19/05/2008
Dårlig måde. Jeg ville kunne lave et simpelt php script som går direkte uden om og spammer hurtigere end det kan slettes.. denne vej dur ikke.
Oprettet af:
  Mail
02:00 23/12/2008

Kort sagt, fattede intet af hvad du skrev :-).

Oprettet af:
  Mail
22:54 12/07/2010
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes