marisa1j7
Members-
Total de itens
4 -
Registro em
-
Última visita
Reputação
0 ComumSobre marisa1j7
Contato
-
Site Pessoal
https://studio72.com.br/
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
-
Não consigo carregar imagem do captcha no meu formulário
marisa1j7 respondeu ao tópico de Rafael_Ferreira em PHP
O problema mais provável aí é que o captcha.php nem está executando por causa de erro de sintaxe ou de ambiente, então o navegador mostra só o ícone de imagem quebrada. Vou apontar os pontos críticos e já te deixo um exemplo de código corrigido. Mas eu usaria o Anti Gravity para tentar solucionar, eu usei para criar esse site, ficou top! 1. Tem um erro de sintaxe na sua função Aqui no seu código: // define a palavra conforme a quantidade de letras definidas no parametro $quantidade_letras $palavra = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQq RrSsTtUuVvYyXxWwZz23456789"),0,($quantidade_letras)); Essa linha: $quantidade_letras está sozinha, sem ponto e vírgula e sem fazer nada. Isso gera Parse error no PHP, e a imagem simplesmente não é gerada. Solução: apaga essa linha ou coloca um ; se for realmente usar (mas aqui ela é inútil), ficando assim: // define a palavra conforme a quantidade de letras definidas no parâmetro $palavra = substr(str_shuffle("AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz23456789"), 0, $quantidade_letras); 2. Verifica se o arquivo verdana.ttf existe no caminho certo Você colocou: $fonte = "verdana.ttf"; Isso significa que o PHP está procurando o arquivo verdana.ttf na mesma pasta do captcha.php. Certifique-se de que o arquivo da fonte está realmente lá. Se estiver em outra pasta, por exemplo fonts/verdana.ttf, altere para: $fonte = __DIR__ . "/fonts/verdana.ttf"; Se a fonte não for encontrada, imagettftext pode falhar e não desenhar nada. 3. Verifica se a extensão GD está ativa (XAMPP / EasyPHP) Esse trecho usa funções da biblioteca GD: $imagem = imagecreate($largura,$altura); imagecolorallocate(...); imagettftext(...); imagejpeg(...); Se a GD não estiver habilitada, você vai ter erros do tipo Call to undefined function imagecreate(). No php.ini, veja se tem algo assim: extension=gd ou extension=gd2 e se não estiver comentado (sem ; no início). Depois reinicia o Apache. 4. Garante que o caminho do captcha.php está certo no <img> No formulário você colocou: <img src="captcha.php?l=150&a=50&tf=20&ql=5"> Isso só vai funcionar se: contato.php e captcha.php estiverem na mesma pasta ou O caminho relativo estiver correto, por exemplo: <img src="includes/captcha.php?l=150&a=50&tf=20&ql=5"> Se o caminho estiver errado, você vai ver erro 404 na aba “Network” do DevTools do navegador. 5. Código do captcha.php ajustado Aqui vai uma versão já corrigida e um pouco mais robusta do seu script: <?php session_start(); // IMPORTANTE: não pode ter nenhum espaço/linha antes do <?php header("Content-type: image/jpeg"); function captcha($largura, $altura, $tamanho_fonte, $quantidade_letras) { // cria a imagem $imagem = imagecreate($largura, $altura); // cores $preto = imagecolorallocate($imagem, 0, 0, 0); $branco = imagecolorallocate($imagem, 255, 255, 255); // preenche o fundo imagefilledrectangle($imagem, 0, 0, $largura, $altura, $preto); // caminho da fonte $fonte = __DIR__ . "/verdana.ttf"; // ajuste se necessário // gera a palavra $caracteres = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnPpQqRrSsTtUuVvYyXxWwZz23456789"; $palavra = substr(str_shuffle($caracteres), 0, $quantidade_letras); $_SESSION["palavra"] = $palavra; // escreve letra por letra for ($i = 0; $i < $quantidade_letras; $i++) { $angulo = rand(-25, 25); $x = 10 + ($tamanho_fonte * $i); $y = $altura - 10; imagettftext( $imagem, $tamanho_fonte, $angulo, $x, $y, $branco, $fonte, $palavra[$i] ); } imagejpeg($imagem); imagedestroy($imagem); } // pega os parâmetros GET com valores padrão $largura = isset($_GET["l"]) ? (int)$_GET["l"] : 150; $altura = isset($_GET["a"]) ? (int)$_GET["a"] : 50; $tamanho_fonte = isset($_GET["tf"]) ? (int)$_GET["tf"] : 20; $quantidade_letras= isset($_GET["ql"]) ? (int)$_GET["ql"] : 5; captcha($largura, $altura, $tamanho_fonte, $quantidade_letras); 6. Como testar se está tudo certo No navegador, acesse direto o arquivo: http://localhost/sua-pasta/captcha.php?l=150&a=50&tf=20&ql=5 Se aparecer a imagem do captcha: o caminho está certo o GD está ok a sintaxe está ok Se não aparecer: Olha o log de erros do PHP ou ativa isso no topo de captcha.php (temporariamente): ini_set('display_errors', 1); error_reporting(E_ALL); (Lembra que isso pode quebrar o header da imagem, então usa só pra depurar mesmo.) -
HOME do Site: qual a melhor otimização?
marisa1j7 respondeu ao tópico de Filipe A. França em Desenvolvimento frontend
Pessoal, estou oferecendo auditoria grátis em meu site, e dicas de OTIMIZAÇÃO. http://mkart.com.br/otimizacao-de-sites/