Kimmeham Skrevet 26. august 2006 Del Skrevet 26. august 2006 (endret) Jeg har i det siste slitt med reklame for penisforlenging, viagra og nissan, og vurderer antibot. Har dessverre fremdeles dårlige kunnskaper innenfor PHP, så lurer på om noen har noe script liggende som dere eventuelt kan forklare litt om, slik at jeg kan komme litt på gli med kunnskapene mine i samme slengen? Som en tilleggsopplysning bruker jeg mortz sitt gjestebokscript inntil videre. På forhånd tuuusen takk! Endret 26. august 2006 av Kimmeham Lenke til kommentar
AlecTBM Skrevet 26. august 2006 Del Skrevet 26. august 2006 kan jo bruke et tilfeldig bilde. Kan lage et script når jeg har sovet noen timer. Hvis ingen andre kommer før meg da. Lenke til kommentar
stian90_2 Skrevet 27. august 2006 Del Skrevet 27. august 2006 bruker du flatfil eller mysql ? har en antibot til begge Lenke til kommentar
Erik B. Skrevet 27. august 2006 Del Skrevet 27. august 2006 mortz.tjokk's scripts benytter seg av flatfiler. Lenke til kommentar
Svish Skrevet 27. august 2006 Del Skrevet 27. august 2006 hadde samme problemet, plutselig en dag var gjesteboka mi full av reklame... og jeg fant en genial side, men jeg husker ikke hva den het, og jeg klarer ikke å finne den igjen =/ men her er det jeg bruker, som er fra den siden. Eneste jeg har fiksa på er stort sett størrelsen på bildet, et par variabelnavn og fargene. audit_image.php <?php $width = 200; $height = 30; $image = imagecreate($width, $height); $white = imagecolorallocate($image, 0xff, 0xff, 0xff); $gray = imagecolorallocate($image, 0xdd, 0xdd, 0xdd); $darkgray = imagecolorallocate($image, 0x88, 0x88, 0x88); srand((double)microtime()*1000000); for ($i = 0; $i < 25; $i++) { $x1 = rand(0,$width); $y1 = rand(0,$height); $x2 = rand(0,$width); $y2 = rand(0,$height); imageline($image, $x1, $y1, $x2, $y2 , $gray); } for ($i = 0; $i < 5; $i++) { $cnum[$i] = rand(0,9); } for ($i = 0; $i < 5; $i++) { $fnt = rand(3,5); $x = $x + rand($width/6-8 , $width/6); $y = rand($height/5 , $height/5*2); imagestring($image, $fnt, $x, $y, $cnum[$i] , $darkgray); } $digit = "$cnum[0]$cnum[1]$cnum[2]$cnum[3]$cnum[4]"; session_start(); $_SESSION['digit'] = $digit; header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?> audit.php <?php function audit() { session_start(); $digit = $_SESSION['digit']; $userdigit = $_POST['userdigit']; unset($_SESSION['digit']); if (($digit == $userdigit) && ($digit > 1)) { return true; } else { return false; } } ?> formen du skal beskytte <p><img src="audit_image.php" alt="Number" width="200" height="30" /> <input maxlength="5" size="5" name="userdigit" type="text" value="" /> </p> i scriptet som behandler formen include "audit.php"; if(!audit()) { // go back or something... } Lenke til kommentar
Kimmeham Skrevet 27. august 2006 Forfatter Del Skrevet 27. august 2006 Tusen takk, Tussi_qwerty! Tror dette kommer til å funke fjell, men det er en ting som er litt uklart for meg: Den siste kodesnutten din, sier du skal ligge i scriptet som behandler formen, mener du den siden som viser gjesteboken? Mortz sitt gjesteboksscript består kun av 2 script, selve gjesteboksscriptet og en include. Lenke til kommentar
Svish Skrevet 27. august 2006 Del Skrevet 27. august 2006 ja, altså, der hvor du skriver inn gjestebokinnlegget, det er en form, med en action="et eller annet". den et eller annet er fila som behandler formen. men altså, greia er bare at i tillegg til å sjekke om brukeren har skrevet inn noe, email addressen gyldig osv osv osv før du legger til det som er skrevet, så sjekker du også audit(). med andre ord er det bare nok et krav for at den skal legge til det som ble skrevet (sinnsykt dårlig forklart.. hoho.. si fra hvis det ikke ga mening) Lenke til kommentar
Kimmeham Skrevet 27. august 2006 Forfatter Del Skrevet 27. august 2006 Hmm, har prøvd litt, men tror jeg må ha misforstått deg.. Kan du forklare litt nærmere? Lenke til kommentar
Svish Skrevet 28. august 2006 Del Skrevet 28. august 2006 (endret) ok.. kan jo ta en gjestebok som eksempel: audit.php og audit_image.php går uansett som egne filer. de bare putter du med andre ord et eller annet sted. så, i <form>'en hvor brukeren skal skrive inn info, så legger du til <p><img src="audit_image.php" alt="Number" width="200" height="30" /> <input maxlength="5" size="5" name="userdigit" type="text" value="" /> </p> for eksempel sånn som i gjesteboka mi. (for de som tilfeldigvis leser denne posten og går å ser hvordan det ser ut: vennligst ikke fyll den opp med test meldinger jeg har sjekket og det funker som det skal ) så, den fila som behandler <form>'inputen, altså i whatever fil som er action="her" starter du med å include "audit.php"; har ikke noe å si hvor du gjør det, bare du gjør det før du bruker audit()-funksjonen. og så, en eller annen gang du kjører mail eller sql query for å legge til noe eller skrive til fil eller hva du nå enn skal, altså der hvor du sjekker om brukerens data er gyldige, sjekker du om audit() er true. hvis audit er true så har brukeren skrevet inn riktig tall, og alt er ok. hvis ikke så må du for eksempel gi beskjed om det til brukeren og be han eller hun prøve på nytt. altså: if(!audit()) { // gå tilbake og få brukeren til å prøve igjen eller lignende } eventuelt: if(audit()) { // gå videre med det som skal gjøres Endret 28. august 2006 av Tussi_qwerty Lenke til kommentar
Kimmeham Skrevet 2. september 2006 Forfatter Del Skrevet 2. september 2006 Ok, nå begynner det å klarne litt for meg her! Men det er litt som ikke er 100% riktig enda; Selve bildet med tallene til antiboten kommer ikke opp, og når man skal skrive en melding i gjesteboken så får man en feilmelding når man trykker OK. Jeg har satt det med <p><img src="audit_image.php" inni formet, så det er ikke problemet. Et lite utklipp fra koden: action="$URLToThisPage&action=dosign" elseif ($action == "dosign") { include "audit.php"; if(!audit()) { } Du sa noe om å få brukeren tilbake i denne if greien, men fikk ikke helt til å plassere inn noe vettugt der. Hvis det skulle være til noe interresse, så kan dere se på gjesteboken! Lenke til kommentar
kakkle Skrevet 5. september 2006 Del Skrevet 5. september 2006 (endret) Endre <img src="audit_image.php" alt="Antibot tall" width="200" height="30" /> til <img src="include/audit_image.php" alt="Antibot tall" width="200" height="30" /> Så bør det funke bedre EDIT: Det fikser bare det at bildet ikke vises, da... Når det gjelder det andre... Fjern den include setningen som ligger etter elseif, slik: elseif ($action == "dosign") { if(!audit()) { } Sånn cirka, tenker jeg. Inni blokken til if(!audit()), så må du ha den koden som skal kjøres dersom de skriver inn feil tall i tall boksen. Foreksempel: if(!audit()) { die("Tallet du skrev stemmer ikke overens med det som stod på bildet. Vennligst prøv på nytt... <a href='link til skriv i gjesteboka'>tilbake til skriv i gjesteboka</a>"); } Endret 5. september 2006 av kakkle Lenke til kommentar
jorgis Skrevet 5. september 2006 Del Skrevet 5. september 2006 Vær også obs på at dette vil utestenge alle blinde brukere, brukere med andre synshemninger, og alle som av en eller annen grunn ikke kan lese bildet. Lenke til kommentar
phun-ky Skrevet 7. september 2006 Del Skrevet 7. september 2006 (endret) en relativ grei måte å gjøre det på, men som Jorgis nevner, det blir jo ikke tilgjengelig for alle brukere. finnes det en annen måte å gjøre det på? lydfil? EDIT: for de som ikke vil bruke den oppgitte bilde generatoren, så kan du lese James Sengs post: Solution for comments spams: http://james.seng.cc/archives/000145.html Endret 7. september 2006 av phun-ky Lenke til kommentar
Svish Skrevet 8. september 2006 Del Skrevet 8. september 2006 To cut the story short, I wrote a plugin to MT that will verify if it is a human before it allows comments to be posted. The idea is pretty simple: Display an image with a Security Code and demand the user to enter a Security Code manually before allowing posting to go through. um... jeg leser gjerne om en altarnativ løsning, men kunne du gjøre den litt mer tydeligere? for jeg finner ikke noe på den siden der..? (mulig jeg bare er utrolig trøtt da.. but still, cant find it!) Lenke til kommentar
Kimmeham Skrevet 8. september 2006 Forfatter Del Skrevet 8. september 2006 Det gikk über bra! Takker så meget for all hjelp og tålmodighet! Lenke til kommentar
gigg Skrevet 29. oktober 2006 Del Skrevet 29. oktober 2006 (endret) Hei!! Jeg har lagt inn antibot som vist på denne siden, og alt ser greit ut, tilsynelatende. Problemet er at selv om jeg skriver feil tall ved innlogging, kommer innlegget frem i gjesteboken. Hva er galt? Endret 29. oktober 2006 av gigg 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å