nodde Skrevet 5. januar 2010 Del Skrevet 5. januar 2010 Hei! Jeg har søkt litt her og litt der uten noe hell om å finne noe enkel antispam php script. Jeg har tenkt på kansje noen spørsmål eller regne stykker, men er litt usikker hvordan jeg skal få det til? Noen forslag? Lenke til kommentar
nodde Skrevet 5. januar 2010 Forfatter Del Skrevet 5. januar 2010 captcha Har sett den, og den er fin til litt større ting. Men er noe helt enkelt jeg tenkte på. Med kansje 10 regnestykker eller spørsmål. Lenke til kommentar
MikkelRev Skrevet 5. januar 2010 Del Skrevet 5. januar 2010 10 regnestykker eller spørsmål? Forstår ikke hva du vil egentlig. Hvis du har en gjestebok feks, og du vil hindre den i å bli nedspammet, så er captcha tingen. Det finnes mange ferdiglagde captcha'er du kan bruke. Lenke til kommentar
Eksempel Skrevet 5. januar 2010 Del Skrevet 5. januar 2010 For det første, om du har et brukersystem, så kan du lage alle slike antispam veldig enkel. Du kan først lage 2 rows på databasen som styrer brukerne, og kall dem antibot1 og antibot2 for eksempel. Såå kan du kopiere denne: $kake = mysql_query("SELECT * FROM `brukerne` WHERE `brukernavn` = '{$_SESSION['brukernavn']}'"); $data = mysql_fetch_object($kake); $ab1 = $data->antibot1; $ab2 = $data->antibot2; $produkt = $ab1+$ab2; if(isset($_POST['utfor'])){ if($_POST['ab'] == $produkt){ mysql_query("kode for å fjerne antibotsperren"); echo "<center>Jippi, du klarte det.</center>"; } else { echo "<center>Feil antibotkode.</center>"; } } echo "<table width=50% align=center><tr><td class=ettellerannet>Antibot!</td></tr> <tr><td class=noeannet><center></br>Legg sammen tallene, og skriv summen i feltet nedenfor.</br></br><form method=post action=\"\">$ab1 + $ab2 = <input type=text name=ab><input type=submit name=utfor value=\"Ta antiboten\"></form> </br></br></td></tr></table>"; Trenger du mer hjelp, så si ifra. ^^ Dette var bare fort gjort. Kan lages bedre. Lenke til kommentar
nodde Skrevet 5. januar 2010 Forfatter Del Skrevet 5. januar 2010 For det første, om du har et brukersystem, så kan du lage alle slike antispam veldig enkel. Du kan først lage 2 rows på databasen som styrer brukerne, og kall dem antibot1 og antibot2 for eksempel. Såå kan du kopiere denne: $kake = mysql_query("SELECT * FROM `brukerne` WHERE `brukernavn` = '{$_SESSION['brukernavn']}'"); $data = mysql_fetch_object($kake); $ab1 = $data->antibot1; $ab2 = $data->antibot2; $produkt = $ab1+$ab2; if(isset($_POST['utfor'])){ if($_POST['ab'] == $produkt){ mysql_query("kode for å fjerne antibotsperren"); echo "<center>Jippi, du klarte det.</center>"; } else { echo "<center>Feil antibotkode.</center>"; } } echo "<table width=50% align=center><tr><td class=ettellerannet>Antibot!</td></tr> <tr><td class=noeannet><center></br>Legg sammen tallene, og skriv summen i feltet nedenfor.</br></br><form method=post action=\"\">$ab1 + $ab2 = <input type=text name=ab><input type=submit name=utfor value=\"Ta antiboten\"></form> </br></br></td></tr></table>"; Trenger du mer hjelp, så si ifra. ^^ Dette var bare fort gjort. Kan lages bedre. Den der så ut til var noe i den duren jeg kunne ha brukt. Er ikke på noe bruker side enda, er bare et messageboard der man kan legge ut info om snowboard, velding enkelt. Går det ann å ha flere regne stykker, når man oppdatere siden så kommer det en nytt regnestykke? Takk for innlegget Lenke til kommentar
Eksempel Skrevet 5. januar 2010 Del Skrevet 5. januar 2010 Vel, trikset da er å få siden til å huske på et spesifikt tall etter at du har trykket en knapp ellerno. Problemet er at et PHP-script "glemmer" forskjellige ting idet du trykker på en knapp. Om du for eksempel har skrevet; $random = rand(1,10); som gir deg et random tall fra 1-10, så vil den for hver oppdatering av siden lage et nytt tall. Men alle $_POST og $_GET osv husker den enda. Derfor kan koden være noe slik: $random1 = rand(1,20); $random2 = rand(1,20); $produkt = ($_POST['ab1'] + $_POST['ab2']); if(isset($_POST['utfor'])){ if($_POST['antibot'] == $produkt){ mysql_query("kode for ingen antibot mer."); echo "<center><font style=\"color:green\">Du klarte det.</font></center>"; exit; } else { echo "<center><font style=\"color:red\">Feil antibotkode.</font></center>"; exit; } } echo "<form method=post><table width=50%><tr><td class=ettellerannet>Antibot</td></tr><tr><td class=spesifiserticssfil><center> </br> Legg sammen tallene, og skriv summen nedenfor.</br></br> $random1 + $random2 = <input type=text name=antibot><input type=submit name=utfor value=\"Utfør antibot\"> <input type=hidden value=\"$random1\" name=ab1> <input type=hidden value=\"$random2\" name=ab2></br> </center></td></tr></table>"; <input type=hidde value=ettellerannet name=noe> Denne er veldig viktig, for den tar med verdien av de to randome tallene fra scriptet videre til etter at du har oppdatert siden. Da må du alltid huske å ikke regne ut antiboten i scriptet ved hjelp av $random1 og $random2. De vil bli nye tall, som alltid, men $_POST['ab1'] og $_POST['ab2'] vil være som før, ettersom de er lagret videre av scriptet. Ikke noe som er lett å tenke seg til på egen hand. Trenger du mer hjelp, så gjerne kontakt meg direkte på melding ellerno. Gøy å hjelpe. Jeg veit den fungerer knirkefritt. Har testet den på siden min. Hehe. Scriptet stopper botbrukere osv, men er enda ikke sikkert. XSS-attack er fortsatt mulig på den. Trenger du hjelp til å fjerne muligheten for det, så send en melding til meg ellerno. Gidder ikke å gjøre det her, ettersom det er litt offtopic. Lenke til kommentar
nodde Skrevet 5. januar 2010 Forfatter Del Skrevet 5. januar 2010 Vel, trikset da er å få siden til å huske på et spesifikt tall etter at du har trykket en knapp ellerno. Problemet er at et PHP-script "glemmer" forskjellige ting idet du trykker på en knapp. Om du for eksempel har skrevet; $random = rand(1,10); som gir deg et random tall fra 1-10, så vil den for hver oppdatering av siden lage et nytt tall. Men alle $_POST og $_GET osv husker den enda. Derfor kan koden være noe slik: $random1 = rand(1,20); $random2 = rand(1,20); $produkt = ($_POST['ab1'] + $_POST['ab2']); if(isset($_POST['utfor'])){ if($_POST['antibot'] == $produkt){ mysql_query("kode for ingen antibot mer."); echo "<center><font style=\"color:green\">Du klarte det.</font></center>"; exit; } else { echo "<center><font style=\"color:red\">Feil antibotkode.</font></center>"; exit; } } echo "<form method=post><table width=50%><tr><td class=ettellerannet>Antibot</td></tr><tr><td class=spesifiserticssfil><center> </br> Legg sammen tallene, og skriv summen nedenfor.</br></br> $random1 + $random2 = <input type=text name=antibot><input type=submit name=utfor value=\"Utfør antibot\"> <input type=hidden value=\"$random1\" name=ab1> <input type=hidden value=\"$random2\" name=ab2></br> </center></td></tr></table>"; <input type=hidde value=ettellerannet name=noe> Denne er veldig viktig, for den tar med verdien av de to randome tallene fra scriptet videre til etter at du har oppdatert siden. Da må du alltid huske å ikke regne ut antiboten i scriptet ved hjelp av $random1 og $random2. De vil bli nye tall, som alltid, men $_POST['ab1'] og $_POST['ab2'] vil være som før, ettersom de er lagret videre av scriptet. Ikke noe som er lett å tenke seg til på egen hand. Trenger du mer hjelp, så gjerne kontakt meg direkte på melding ellerno. Gøy å hjelpe. Jeg veit den fungerer knirkefritt. Har testet den på siden min. Hehe. Scriptet stopper botbrukere osv, men er enda ikke sikkert. XSS-attack er fortsatt mulig på den. Trenger du hjelp til å fjerne muligheten for det, så send en melding til meg ellerno. Gidder ikke å gjøre det her, ettersom det er litt offtopic. Tusen takk! Den skjønte jeg helt ut, godt forklart! 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å