Immagine Captca

L'immagine Captca appare con in caratteri uniti es: d5gr, come faccio a farli apparire con uno spazio ognuno? Es: d 5 g r

//Captca-image 

session_start(); 

if (empty($_SESSION['rand_code'])){ 
$str = ""; 
$length = 0; 
$caratteri = "abcdefghijklmnpqrstuvwxyz123456789";//Caratteri che appaiono come immagine
for ($i = 0; $i < 5; $i++){ 
$str .= $caratteri{rand(0,34)};
} 
$_SESSION['rand_code'] = $str; 
} 
$imgX = 60;//Sposta a dx i caratteri-immagine 
$imgY = 20;//Sposta in alto i caratteri-immagine 
$image = imagecreatetruecolor(60, 20); 
$backgr_col = imagecolorallocate($image, 238,239,239);//Colore di sfondo
$border_col = imagecolorallocate($image, 208,208,20);//Colore del bordo 
$text_col = imagecolorallocate($image, 46,60,31);//Colore dei caratteri-immagine
 
imagefilledrectangle($image, 0, 0, 60, 20, $backgr_col);//Cambiando i 4 valori appare un'ombra nera e si puņ creare un'effetto rilievo o incassato del rettangolo  
imagerectangle($image, 0, 0, 59, 19, $border_col);// Sposta il bordino colorato del rettangolo

$font = "arial.ttf";
$font_size = 11;//Dimensione dei caratteri-immagine 
$angle = 0;//Ruota obliqui i caratteri-immagine 
$box = imagettfbbox($font_size,$angle,$font,$_SESSION['rand_code']); 
$x = (int)($imgX - $box[4]) / 2;//Sposta a sx i caratteri-immagine 
$y = (int)($imgY - $box[5]) / 2;//Sposta in alto i caratteri-immagine
imagettftext($image,$font_size,$angle,$x,$y,$text_col,$font,$_SESSION['rand_code']); 

header("Content-type: image/jpeg"); 
imagejpeg($image); 
imagedestroy ($image);
 
//Fine Captca-image 

 ?>
inviato 9 anni fa
php
php
6
X 0 X

La spaziatura dei caratteri in una stringa scritta con imagettftext non puņ essere importata ma č automatica e dipende dal font utilizzato.

L'approccio alternativo per ottenere una spaziatura maggiore si basa sulla stampa dei caratteri della stringa uno alla volta.

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ho modificato lo script per inserire davandi ad ogni carattere uno spazio, anche se č un approccio alla "carlona" fa il suo sporco lavoro penso...pero' allo stesso tempo allargandosi la stringa e' stato necessario allargare anche il rettangolo che contiene il tutto, provalo magari nn ho capito io la richiesta.

session_start(); 

if (empty($_SESSION['rand_code'])){ 
$str = ""; 
$length = 0; 
$caratteri = "abcdefghijklmnpqrstuvwxyz123456789";//Caratteri che appaiono come immagine
for ($i = 0; $i < 5; $i++){ 
$str .= ' '.$caratteri{rand(0,34)};
} 
$_SESSION['rand_code'] = $str; 
} 
$imgX = 70;//Sposta a dx i caratteri-immagine 
$imgY = 25;//Sposta in alto i caratteri-immagine 
$image = imagecreatetruecolor(80, 30); 
$backgr_col = imagecolorallocate($image, 238,239,239);//Colore di sfondo
$border_col = imagecolorallocate($image, 208,208,20);//Colore del bordo 
$text_col = imagecolorallocate($image, 46,60,31);//Colore dei caratteri-immagine
 
imagefilledrectangle($image, 0, 0, 80, 30, $backgr_col);//Cambiando i 4 valori appare un'ombra nera e si puņ creare un'effetto rilievo o incassato del rettangolo  
imagerectangle($image, 0, 0, 79, 29, $border_col);// Sposta il bordino colorato del rettangolo

$font = "arial.ttf";
$font_size = 11;//Dimensione dei caratteri-immagine 
$angle = 0;//Ruota obliqui i caratteri-immagine 
$box = imagettfbbox($font_size,$angle,$font,$_SESSION['rand_code']); 
$x = (int)($imgX - $box[4]) / 2;//Sposta a sx i caratteri-immagine 
$y = (int)($imgY - $box[5]) / 2;//Sposta in alto i caratteri-immagine
imagettftext($image,$font_size,$angle,$x,$y,$text_col,$font,$_SESSION['rand_code']); 

header("Content-type: image/jpeg"); 
imagejpeg($image); 
imagedestroy ($image);
risposto 9 anni fa
mat
mat
1
X 0 X

Si i font sono staccati, cosa hai modificato del codice? Non vedo...

risposto 9 anni fa
php
php
6
X 0 X

Ho visto... ho centrato meglio l'immagine e aumentato la dimensione del font...prova a vedere http://www.photoman.altervista.org/guestbook/form.php

risposto 9 anni fa
php
php
6
X 0 X

ho provato a me nn da problemi! O0

risposto 9 anni fa
mat
mat
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda