Avatar billede human Nybegynder
04. august 2007 - 21:05 Der er 10 kommentarer og
1 løsning

Billede er for let at læse

Hej

Jeg har den her:

<?php
header('Content-Type: image/png');
session_start();
$im = ImageCreate(70, 20);

$white = ImageColorAllocate($im, 0, 0, 0);
$black = ImageColorAllocate($im, 255, 255, 255);

srand((double)microtime()*1000000);
$string = md5(rand(0,9999));

$_SESSION['new_string'] = substr($string, 17, 5);

ImageFill($im, 0, 0, $black);
ImageString($im, 8, 13, 2, $_SESSION['new_string'], $white);

ImagePNG($im);
ImageDestroy($im);

?>

Men det billede som bliver generet ud fra det, er alt for nemt at læse for bots. Er der en, som kan gøre det en del mere effiktivt, og helst så jeg ikke skal til at ændre en hel masse.. Overstående er i en fil alene og den indeholder ikke andet.
Avatar billede jakobdo Ekspert
04. august 2007 - 22:39 #1
Hvad med at tage noget færdig kode: http://www.white-hat-web-design.co.uk/articles/php-captcha.php
Det var første hit på google med "php captcha"
Avatar billede human Nybegynder
04. august 2007 - 23:47 #2
Fordi jeg ikke gider til at ændre i det alt det andet kode og sidde et par timer for at få lortet til at virke.
Avatar billede goulduck Nybegynder
05. august 2007 - 01:49 #3
Så hellere bruge et par timer på at få din egen kode til at virke? ;-)
Avatar billede jakobdo Ekspert
05. august 2007 - 07:51 #4
Hvis du har det kode du skriver øverst i dette indlæg, så burde du kunne mere eller mindre kunne løse dit problem med:

CTRL + A
DELETE

Åben browser: http://www.white-hat-web-design.co.uk/articles/captcha.zip
Gem og åben fil.
Ret kode og så er det klaret.

Det burde bestemt ikke tage timer.
Avatar billede nielle Nybegynder
05. august 2007 - 07:57 #5
Der er faktisk også en udemærket artikel om det her på Eksperten:

http://www.eksperten.dk/artikler/1106
Avatar billede human Nybegynder
05. august 2007 - 17:37 #6
Jeg udskriver mit billede med <img src="../verify/verify.php" /> Og så kommer billedet frem. Hvis en af jer, kan få overstående artikels metode til at virke, som jeg udskriver mit billede. Ja så får du de 200.

På forhånd tak.
Avatar billede jakobdo Ekspert
05. august 2007 - 17:58 #7
Hvis du tager koden fra: THE CODE og gemmer i verify.php, så burde det faktisk give dig samme resultat.
Den bruger dog en session som hedder: $_SESSION['security_code'] = $code;
Det kan du jo evt. ændre til: $_SESSION['new_string']; så er det det.
Avatar billede human Nybegynder
05. august 2007 - 23:45 #8
Så nemt var det heller ikke.. Den mener jeg taster forkert kode hver gang. Jeg har ikke ændret i CaptchaSecurityImages.php bortset fra jeg gav den et andet navn.

MIn kode jeg ændrede:
<input type="text" name="security_code" id="security_code" /><img src="../verify/verify.php?width=100&height=40&characters=5" />


lidt længere nede:
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {
  if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'] ) ) {

smider i db..


  } else {
        // Insert your code for showing an error message here
        echo 'Sorry, you have provided an invalid security code';
  }
  }

Jeg kan ikke lige se hvad jeg gør forkert..
Avatar billede human Nybegynder
06. august 2007 - 00:55 #9
fandt ud af det. jakobdo, læg et svar.
Avatar billede jakobdo Ekspert
06. august 2007 - 08:05 #10
Svar!
Avatar billede jakobdo Ekspert
06. august 2007 - 18:13 #11
Takker for point.
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