leo_02 0 Denunciar post Postado Dezembro 26, 2011 Segui um tutorial para a criação de um captcha em PHP, mas a imagem não aparece no navegador. Nenhum erro é apontado. <? header('Content-type: image/jpeg'); session_start(); $image = imagecreate(200,70); $fonte = 'arial.ttf'; $corLetra = imagecolorallocate($image,255,255,255); $corLetra = imagecolorallocate($image,255,0,0); $tFonte = '50'; $qtLetras = 4; $palavras = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjLlKkMmNnOoPpQqRrSsTtUuVvWwXxZzYy0123456789"),0,$qtLetras); $_SESSION['captchaCadastro'] = $palavras; for($i=1;$i<=$qtLetras;$i++){ imagettftext($image,$tFonte,rand(-30,25),(($tFonte*$i)/1.5),$tFonte+5,$corLetra,$fonte,substr($palavras,($i-1),1)); } imagejpeg($image); imagedestroy($image); ?> Coloquei a fonte arial apenas para teste e ela está na mesma pasta do documento. Chamo a imagem por outro arquivo desse modo: <img src="captcha/captcha.php" /> O caminho do arquivo também está correto. Qual é o erro? Desde já agradeço pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 26, 2011 Olha, aqui eu desabilitei o header() e recebi um erro de fonte inválida. Claro, eu não tinha o arquivo arial.ttf junto do script. Foi só copiar da pasta de Fontes do Windows e funcionou. Não seria esse seu problema? Compartilhar este post Link para o post Compartilhar em outros sites
leo_02 0 Denunciar post Postado Dezembro 26, 2011 Olha, aqui eu desabilitei o header() e recebi um erro de fonte inválida. Claro, eu não tinha o arquivo arial.ttf junto do script. Foi só copiar da pasta de Fontes do Windows e funcionou. Não seria esse seu problema? O arquivo está na pasta. Isso é o mais estranho não dá erro, mas a imagem não aparece pra mim. Você está usando o Wamp Server? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Dezembro 27, 2011 Não, por preguiça estou usando o XAMPP :yay: Experimenta habilitar/exibir os erros do script adicionando no início: ini_set( 'display_errors', TRUE ); error_reporting( E_ALL | E_STRICT ); Veja se te aparece alguma coisa. Num primeiro momento, uma coisa que me vêm à cabeça seria que a GD não está habilitada. Se for verdade, você deverá ver um Undefined function imagecreate()... Compartilhar este post Link para o post Compartilhar em outros sites
leo_02 0 Denunciar post Postado Dezembro 27, 2011 Cara valeu mesmo pela ajuda. O código realmente não está com erros por isso eles não aparecem. O problema é que essa função "imagejpeg" não coloca a imagem no meu navegador por algum motivo. Também já dei uma olhada nessa questão da GD e acho que talvez o seu tenha funcionado normalmente por ser o XAMPP, já que o Wamp Server, mesmo com a opção habilitada no php.ini, não cria a imagem. Vou baixar o XAMPP pra ver se é isso mesmo. Depois posto aqui se funcionou. Valeu. Compartilhar este post Link para o post Compartilhar em outros sites
leo_02 0 Denunciar post Postado Dezembro 27, 2011 Mesmo com o XAMPP, a imagem não apareceu aqui. No entanto, tava pesquisando e encontrei uma forma de gerar a imagem para dentro da pasta e o código ficou assim: <?php session_start(); $image = imagecreate(200,70); $fonte = 'arial.ttf'; $corLetra = imagecolorallocate($image,255,255,255); $corLetra = imagecolorallocate($image,255,0,0); $tFonte = '50'; $qtLetras = 4; $palavras = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjLlKkMmNnOoPpQqRrSsTtUuVvWwXxZzYy0123456789"),0,$qtLetras); $_SESSION['captchaCadastro'] = $palavras; for($i=1;$i<=$qtLetras;$i++){ imagettftext($image,$tFonte,rand(-30,25),(($tFonte*$i)/1.5),$tFonte+5,$corLetra,$fonte,substr($palavras,($i-1),1)); } imagejpeg($image, "captcha.jpg"); //aqui a imagem "captcha.jpg" é criada para dentro da pasta imagedestroy($image); ?> E dentro do arquivo que chama a imagem coloquei assim: <?php include "captcha.php"?><img src="images/captcha.jpg"> Dessa forma o arquivo php é executado toda vez que a página é atualizada, gerando outro captcha que susbtitui a imagem anterior. Assim, o arquivo não fica pesado e a funcionalidade do captcha é garantida. Valeu pela atenção Bruno Augusto. Problema resolvido. Compartilhar este post Link para o post Compartilhar em outros sites