Gå til innhold

ip antiflood system i gjestebok?


Anbefalte innlegg

Skrevet

Hei

Jeg driver å lager meg en gjestebok men jeg vil ha anti-flood system på den

slik at ingen tullinger kommer å ødlegger den helt.....

Men spørmålet mitt er hvordan????

:hmm::hmm:

Videoannonse
Annonse
Skrevet

Du kan jo sjekke om en bruker har skrevet seg inn ved å sette en cookie når brukeren har signert gjesteboka, og ikke tillate brukeren å skrive inn hvis cookien er satt.

Skrevet (endret)

Det er en lett jobb :)

 

Det beste til dette er cookies, som lages vis den ikke er der, og lagrer et timestamp i den. Hvis cookien er til stede og siste tida (timestampen) var under f.eks 30 sekunder, gir du beskjed at Dette går ikke :)

 

EDIT: Det med timestampen er bare nødvendig ved shoutbox.... det holder å sjekke om den er der med guestbook, som lokaltog sier.

Endret av rogbiff
Skrevet (endret)

Tusen takk for raske svar...

Men kan dere "kode", lage den biten med kode til meg?

Resten fikses selv...

 

 

EDIT: Blir det noe sånt

setcookie("TestCookie", time()+3600);

i så fall...

Går det ann å skrive hvor lang tid som er igjen?

Endret av Filip_KickAss
Skrevet
Tusen takk for raske svar...

Men kan dere "kode", lage den biten med kode til meg?

Resten fikses selv...

 

 

EDIT: Blir det noe sånt

setcookie("TestCookie", time()+3600);

i så fall...

Går det ann å skrive hvor lang tid som er igjen?

Den setcookie du har skrevet opp, har feil artibutter:

 

setcookie("test", content kan vere tom, eks bare "", time() + 60*60*24*365);

 

Denne cookien varer i et år, mens din varer i bare 1 time ;)

Skrevet

Bruker denne på lokaltog.net:

if(!$_COOKIE['signert'])
setcookie('signert', 1, time()+10000, '/');

 

Og kjører en sjekk som dette:

if(!$_COOKIE['signert'])
{
// SIGNER GJESTEBOK HER
}

Skrevet

Warning: Cannot add header information - headers already sent by (output started at /mnt/home4/b/bo/boxwolf/public_html/index.php:22) in /mnt/home4/b/bo/boxwolf/public_html/sider/gjestebok.php on line 25

HMM

Får bare feilmelding....

setcookie('postet', time()+3600, '/');

 

What is the feil?

Skrevet

Jeg vil ha det slik at når noen poster, legges det en dato/klokkeslett i mysql databasen og prøver personen å legge til en ny post innen en time, sier den stopp...

 

Kan det ordnes???? :ermm:

Vil ikke ha cookies for da må jeg endre alt jeg har gjort :(

Skrevet

Jeg bruker koden nedenfor. Den skriver Ip'en til brukeren i en logfil. For at dette skal funke må du lage en mappe som heter data og chmod'e den 0777.

 

function FloodDetector($IPLogFile) {
$done = 0;
$line = 0;
$file = file($IPLogFile);
$ip = getenv("REMOTE_ADDR");
$hour = date("HdmY");
$date = $a[6];
while($file[$line]) {
 $a = explode("|", $file[$line]);
 if (($a[0] == $ip) && ($a[1] == $hour)) { $done = 1; }
 $line++;
}
if ($done == 1) return true;
else {
 $a = implode($file, "");
 $fp = fopen($IPLogFile, "w"); 
 fwrite($fp, $ip . "|" . $hour . "|\n" . $a);
 fclose($fp);
 return false;
}
}

 

Legg inn denne som sjekk før innlegget lagres i databasen:

 

//Sjekk at brukeren ikke flooder	
if (FloodDetector($IPLogFile)) {
   echo "<p>ERROR! Flooding-sperre: Du har allerede skrevet et innlegg i løpe

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...