Thomas. Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Er det noe kode for det ? Floding sperre ? Slik at for hver IP som poster en hilsen i gjesteboka må vente f.eks 5 min. mellom hver posting ? Lenke til kommentar
Mats Danielsen Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 <?php if(flood($_SERVER['REMOTE_ADDR'])) { echo "Ikke flood!"; ?> Lenke til kommentar
Thomas. Skrevet 25. desember 2007 Forfatter Del Skrevet 25. desember 2007 Ikke svar slikt tull da. Lenke til kommentar
Jonas Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Slutt å spør om slikt tull da. Det ikke noe som heter "en kode" for noe. Det finnes et sett funksjoner som ligger i PHP som standard, og alt må bygges på dette. Det finnes ikke èn flood-kode, på samme måte som det ikke finnes en kode for kriminalitet i mafia-spill. For å få til noe slikt er du nødt til å lagre et slags timestamp for hver hendelse og sammenligne siste verdi med den aktuelle tiden. Se på Time(). Antar at du nå vet hvordan du kan bruke f.eks. MySQL. Lenke til kommentar
Merko Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Ikke svar slikt tull da. Du kan jo lage ei rad i mysql db'en din med feks "flood" så IPen hans under, så da han skal skrive innlegg kan du sjekke om hans IP er i "flood" er den så kommer du med noe echo greier Litt usikkker på hvordan du skal ta bort IPen hans fra "flood" etter 5min though. Vet ikke om det er noe timer sak i php Lenke til kommentar
grimjoey Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 (endret) sql: create table gb_flood (id int(11) not null default null primary key auto_increment, ip varchar(15), timestamp datetime); php: if (isset($_POST['submit_gjestebok']) && !empty($_POST['submit_gjestebok'])) { $res = mysql_query('select timestamp from gb_flood where ip = '.$_SERVER['REMOTE_ADDR'].';'); if ($row = mysql_fetch_row($res)) { $lastpost = strtotime($row[0]) + 300; // 5 * 60 = 300 $thispost = time(); if ($thispost < $lastpost) { echo 'You have to wait 5 mins between postings.'; break 2; } } else { mysql_query('insert into gb_flood values(null, '.$_SERVER['REMOTE_ADDR'].', now())'); } .... legg post til databasen } utestet. Endret 25. desember 2007 av grimjoey Lenke til kommentar
Thomas. Skrevet 25. desember 2007 Forfatter Del Skrevet 25. desember 2007 Gjesteboken min kjører flat-fil. Noen koder for det ? Lenke til kommentar
Mats Danielsen Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 Såpass, da bør du virkelig bytte fort. Lenke til kommentar
Gjest Slettet+142 Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 (endret) Da får du finne på et system som baserer seg på flatfiler for det også da vel? f.eks en fil med format ip - timestamp. For å sjekke får du vel hente inn alle oppføringene fra filen til et array og sjekke. Hvis du ikke vet hvordan det gjøres foreslår jeg at du ser på php.net.. php.net - fopen() php.net - fwrite() php.net - fclose() php.net - file() php.net - file_get_contents() Og en ting til: LES hva folk skriver til deg i postene. Les f.eks Jonas sin post, og deretter din siste post en gang til.. Endret 25. desember 2007 av Slettet+142 Lenke til kommentar
Ernie Skrevet 25. desember 2007 Del Skrevet 25. desember 2007 (endret) Gjesteboken min kjører flat-fil. Noen koder for det ? ... og hvordan i alle dager forventer du at vi da skal løse problemet ditt? Uannsett, høyst teoretisk er det vel ikke verre enn å lagre tidspunkt og IP for hvert innlegg i gjesteboka i fila. Forutsatt at nyeste ligger "øverst"/først i fila vil det bare være å bla seg utover så lenge man ikke finner IPen og så lenge innlegget er eldre enn x antall sekunder. Red.: Syk og trøtt. Det bare måtte bli en logisk feil i innlegget da Endret 25. desember 2007 av Ernie Lenke til kommentar
bluefire Skrevet 26. desember 2007 Del Skrevet 26. desember 2007 (endret) if(file_get_contents("ip/" . $_SERVER['REMOTE_ADDR'] <=(time()+10)){ echo "Ikke flood!"; } else{ fopen("ip/" . $_SERVER['REMOTE_ADDR'], "w"); fwrite("ip/" . $_SERVER['REMOTE_ADDR'], time()); } Kode i råfiler. Et script som ikke lar noen legge innlegg før det har gått 10 sek Endret 26. desember 2007 av bluefire Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå