Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:33 Der er 19 kommentarer og
1 løsning

Antispam-ting til gæstebog

Jeg har en gæstebog... men det er naturligvis muligt at poste mere end en besked om dagen... og i sekundet... og lige pludselig har man 1000 ens beskeder fra en eller anden lamer spammer.

så jeg mangler en anti-spam ting...

Jeg havde tænkt på noget i stil med:
Jeg har brug for 2 filer tror jeg, som begge skal includes på den side der skriver til databasen.

første fil (includes INDEN der skrives til databasen), checker om en spam-cookie eksisterer - hvis den gør skal den redirecte til en anden side, ellers bare fortsætte på siden...

anden fil (includes EFTER der skrives til databasen) opretter en cookie på clienten, som skal resultere den første fil i at redirecte hvis den findes. - denne cookie skulle fx holde i 1 time - således at man kun kan poste éen hilsen i timen - det er trods alt en gæstebog - ikke en chat...

problemet er bare at jeg intet aner om cookies... please help me!
Avatar billede macsen Nybegynder
21. januar 2004 - 16:35 #1
Hvilket sporg har du skrevet din hjemmeside i?
Avatar billede macsen Nybegynder
21. januar 2004 - 16:35 #2
hehe ... PHP :S
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:36 #3
well php.. det var derfor jeg oprettede den herunder php...
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:36 #4
lol np :)
Avatar billede macsen Nybegynder
21. januar 2004 - 16:37 #5
Du kan også låse folk efter derres IP adr!
Avatar billede macsen Nybegynder
21. januar 2004 - 16:37 #6
deres
Avatar billede macsen Nybegynder
21. januar 2004 - 16:38 #7
Så evt på Get remote IP address i google
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:38 #8
jo, men jeg er ikke interesseret i at låse efter IP, da jeg således ville blokere fx en hel skole, hvis der bare er éen elev der spammer... og det går jo virkelig ikke ;-)
Avatar billede macsen Nybegynder
21. januar 2004 - 16:38 #9
Søg ^^
Avatar billede macsen Nybegynder
21. januar 2004 - 16:39 #10
Du kan bare låse den et par sekunder
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:40 #11
-jeg logger dog folks IP med:
$ip = $REMOTE_ADDR;

well som sagt, er IP ikke en løsning jeg er interesseret i...
Avatar billede macsen Nybegynder
21. januar 2004 - 16:41 #12
okies ... 2 sec
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:42 #13
....det er altså ikke for at være negativ, jeg foretrækker bare en cookie-baseret løsning - ikke mindst som en anledning til at lære lidt om dem :P
Avatar billede jakoba Nybegynder
21. januar 2004 - 16:46 #14
1) check referrer når der kommer et nyt indlæg til gæstebogen. Hvis spammeren sender mange er det med en automatik han selv har lavet, ikke fra din webside.

det skulle fjerne det meste spam

2) Lav siden om så den side der vises efter man har sendt et indlæg ikke indeholder din 'skriv noget til mig' formular, men blot de indlæg der har været. Det er nemt første gang hvor du jo behandler de indkomne data imens.

så er spammere nødt til at bruge tid på at gå væk fra siden og tilbage igen før de kan lægge næste spam.

3) Lave en session til alle besøgende så de er nædt til helt at forlade dit websted og gå tilbage igen før de bliver set som 'nye' besøgende. Lidt mere besværligt :(. Men nu er det ret sikkert for meget bøvl til a nogen spammer gider bruge så meget tid på at spamme dig.
Avatar billede angelenglen Nybegynder
21. januar 2004 - 16:51 #15
okay, jeg tror jeg vil gøre alle 3 ting, jeg er ikke helt sikker på om jeg vil lave nummer 3, da session vist ikke timer out efter et bestemt stykke tid...

-men jeg ville stadig gerne have en cookie-løsning, således at jeg er sikker på, at medmindre spammeren manuelt sletter sin cookie, så kommer der ikke mere end et indlæg per maskine i timen. jeg tror ikke at de mange indlæg var automatisk genereret, da jeg på timestamp kan se at der er ca 1/4 - 1/2 sekunder imellem, så jeg tror bare han har sidder og trykket backspace/enter konstant... -plus der findes de irriterende typer der gladeligt ville sidde og skrive spam-beskeden ind manuelt hver gang, og gerne bruge et helt frikvarter på det... det er primært dem jeg går imod..
Avatar billede angelenglen Nybegynder
21. januar 2004 - 20:20 #16
:-(
Avatar billede Slettet bruger
22. januar 2004 - 00:27 #17
Start siden, der modtager din form med:

if (isset($_COOKIE['gb']){header("Location: andenside.php"); exit();}
setcookie('gb',1,time()+3600);
Avatar billede Slettet bruger
22. januar 2004 - 00:28 #18
Rettelse:

if (isset($_COOKIE['gb'])){header("Location: andenside.php"); exit();}
setcookie('gb',1,time()+3600);
Avatar billede nomisweb Nybegynder
09. juli 2006 - 11:33 #19
Virker det som sandbox skriver? Og kan jeg måske få det forklaret! Har lidt samme problem med spam i gæstebog, men er ik lige vildt stærk i PHP!
(et dumt spørgsmål er foreksempel om andenside.php skal være en anden side på mit site eller om det skal være en hvilken som helst side? Og virker denne if kun hvis jeg har der hvor man skriver og der hvor man ser inlæggene i seperate sider?)
Avatar billede Slettet bruger
09. juli 2006 - 22:22 #20
Ja, den kode, jeg skrev virker lige nøjagtigt på den måde, som angelenglen bad om.

Den første linie kontrollerer, om der findes en cookie med navnet gb, og hvis den findes, så hopper den til en anden side og afslutter dette script.

Resten af scriptet kan så gemme kommentaren.

Min tanke er, at den bagefter også hopper videre til den samme andenside.php, som kunne være den, der udskriver de eksisterende kommentarer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB