jnejunior 1 Denunciar post Postado Março 7, 2011 baixei um script de captcha, mas a imagem não é exibida... o que pode estar acontecendo? <?php // Inicializa os dados da session session_start(); // Definir o header como image/png para indicar que esta página contém dados // do tipo image->PNG header("Content-type: image/png"); // Criar um novo recurso de imagem a partir de um arquivo $imagemCaptcha = imagecreatefrompng("captcha.png") or die("Não foi possível inicializar uma nova imagem"); //Carregar uma nova fonte $fonteCaptcha = imageloadfont("anonymous.gdf"); // Criar o texto para o captcha $textoCaptcha = substr(md5(uniqid('')),-9,9); // Guardar o texto numa variável session $_SESSION['session_textoCaptcha'] = $textoCaptcha; // Indicar a cor para o texto $corCaptcha = imagecolorallocate($imagemCaptcha,0,0,0); // Escrever a string na cor escolhida imagestring($imagemCaptcha,$fonteCaptcha,15,5,$textoCaptcha,$corCaptcha); // Mostrar a imagem captha no formato PNG. // Outros formatos podem ser usados com imagejpeg, imagegif, imagewbmp, etc. imagepng($imagemCaptcha); // Liberar memória imagedestroy($imagemCaptcha); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 7, 2011 você tem a imagem captcha.png e a fonte anonymous.gdf ? Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Março 7, 2011 sim, e estão na mesma pasta Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Março 7, 2011 Vamos tentar assim: Salve como function_CAPTCHA.php <?php /** * função CAPTCHA para diferenciar humanos de computadores */ function CAPTCHA(){ // iniciou a sessão ? if(!isset($_SESSION)){ // inicia a sessão session_start(); } // definimos o header como image/png para que possamos visualizar a imagem header("Content-type: image/png"); // retorna um identificador de imagem representando a imagem obtida através do nome de arquivo informado. $imagemCAPTCHA = imagecreatefrompng("captcha.png"); // carrega uma nova fonte $fontCAPTCHA = imageloadfont("anonymous.gdf"); // criamos o texto que irá na imagem $textoCAPTCHA = substr(md5(uniqid(rand(), true)), -9,8); // guardamos o texto em uma session $_SESSION['textoCAPTCHA'] = $textoCAPTCHA; // damos uma cor(RGB) para o texto $corCAPTCHA = imagecolorallocate($imagemCAPTCHA,255,180,50); // vamos escrever o texto na imagem. //imagestring("identificador da imagem","identificador da fonte","posição do texto na coordenada x",posição do texto na coordenada y","string texto","identificador de cor"); imagestring($imagemCAPTCHA,$fontCAPTCHA,5,5,$textoCAPTCHA,$corCAPTCHA); // mostramos a imagem pronta imagepng($imagemCAPTCHA); // destruimos a imagem imagedestroy($imagemCAPTCHA); } // chamamos a função CAPTCHA(); ?> A função está pronta, agora vamos testar se está tudo funcionando como deveria. Salve como: test.php <?php // iniciou a sessão ? if(!isset($_SESSION)){ // inicia a sessão session_start(); } ?> <html> <head> <title>Validar CAPTCHA</title> </head> <body> <!-- vamos testar se a nossa funcao esta funcionando corretamente --> <form action="#" method="get"> <!-- no lugar do nome da imagem, informamos o nome do arquivo com a funcao --> <img src="function_CAPTCHA.php" width="200" height="50" /><br /><br /> <input type="text" name="captcha" /> <input type="submit" value="Enviar" /> </form> <?php // foi setado ? if(isset($_GET['captcha'])){ // são iguais ? if( $_SESSION['textoCAPTCHA'] == $_GET['captcha']){ echo "<h1>Ok - Valor Correto</h1>"; }else{ echo "<h1>Erro - Valor errado</h1>"; } } ?> </body> </html> Vê se funcionou como deveria. Compartilhar este post Link para o post Compartilhar em outros sites
jnejunior 1 Denunciar post Postado Março 7, 2011 agora deu certo, acho que tinha escrito o nome da fonte errado... valeu, brigadão Compartilhar este post Link para o post Compartilhar em outros sites