Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
— |
programmazione:php:creare_immagine_per_captcha [28/04/2022 - 10:26] (versione attuale) Fabio Di Matteo creata |
||
---|---|---|---|
Linea 1: | Linea 1: | ||
+ | ====== Creare un'immagine per un CAPTCHA con Php e libgd ====== | ||
+ | Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 28/04/2022 - 10:22 //** // // | ||
+ | Vedremo come creare un'immagine con da usare nei sistemi di CAPTCHA in php e libgd. Intanto ecco il risultato: | ||
+ | {{:programmazione:php:captcha.png?100|}} | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | |||
+ | function getRandomString($n) { | ||
+ | $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
+ | $randomString = ''; | ||
+ | | ||
+ | for ($i = 0; $i < $n; $i++) { | ||
+ | $index = rand(0, strlen($characters) - 1); | ||
+ | $randomString .= $characters[$index]; | ||
+ | } | ||
+ | | ||
+ | return $randomString; | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | function noise($image) | ||
+ | { | ||
+ | $x = 100; | ||
+ | $y = 50; | ||
+ | $image = imagecreatetruecolor($x,$y); | ||
+ | $white = imagecolorallocate($image, 255, 255, 255); | ||
+ | imagefilledrectangle($image, 0, 0, 399, 29, $white); | ||
+ | $colorText = imageColorAllocate($image, 255,255,255); | ||
+ | |||
+ | for($i = 0; $i < $x; $i++) { | ||
+ | for($j = 0; $j < $y; $j++) { | ||
+ | $color = imagecolorallocate($image, rand(0,20), rand(0,255), rand(0,255)); | ||
+ | imagesetpixel($image, $i, $j, $color); | ||
+ | | ||
+ | } | ||
+ | } | ||
+ | return $image; | ||
+ | } | ||
+ | |||
+ | | ||
+ | $im = imagecreatetruecolor(120, 50); | ||
+ | $im=noise($im); | ||
+ | |||
+ | | ||
+ | imagettftext($im, 20, 0, 10, 35, | ||
+ | imagecolorallocate($im, 0, 0, 0), | ||
+ | './font.ttf', getRandomString(5)); | ||
+ | | ||
+ | // Output to browser | ||
+ | header('Content-Type: image/png'); | ||
+ | imagepng($im); | ||
+ | imagedestroy($im); | ||
+ | ?> | ||
+ | |||
+ | |||
+ | </code> | ||
+ | |||
+ | Serve mettere a disposizione dello script un file per il font (**font.ttf**). |
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.