Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Prezados,
Desenvolvi um sistema com o GD do PHP no qual inputo dados e me retorna uma imagem com o design feito.
O problema é que após eu digitar os dados e dar o submit o formulário se apaga. Procurei algumas soluções hoje durante a tarde inteira e nenhuma foi satisfatória. Poderiam me ajudar?
Link para verificar o funcionamento do sistema: http://uffinance.com.br/gerador/dissert/
Ele é composto por 2 arquivos de programação (fora imagem de fundo e fontes):
index.php
<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Gerador Design Dissertacao</title>
</head>
<body>
<form action="" method="POST">
<p>Titulo:<textarea name="titulo" type="text" value="<?php echo $titulo ?>" rows="3" cols="40"/></textarea></p>
<p>Mestrando (a): <input name="aluno" type="text" value="<?php echo $aluno ?>" size="50"/></p>
<p>Orientador (a): <textarea name="orient" type="text" value="<?php echo $orient ?>" rows="2" cols="40"/></textarea></p>
<p>Data e Local: <input name="teste" type="text" value="<?php echo $teste ?>" size="50"/></p>
<p>Banca: <textarea name="banca" type="text" value="<?php echo $banca ?>" rows="7" cols="40"/></textarea></p>
<input type="submit" name ='assinar' value="Criar Assinatura" />
</form>
<p></p>
<?php
$aluno = isset($_POST['aluno'])?$_POST['aluno']:"Teste1";
$titulo = isset($_POST['titulo'])?$_POST['titulo']:"Teste2";
$teste = isset($_POST['teste'])?$_POST['teste']:"Teste3";
$orient = isset($_POST['orient'])?$_POST['orient']:"Teste4";
$banca = isset($_POST['banca'])?$_POST['banca']:"Teste5";
if (isset($_POST['assinar'])){
$url = "http://uffinance.com.br/gerador/dissert/ex1.php";
$data = array('nome' => $aluno , 'cargo' => $titulo, 'teste' => $teste, 'orient' => $orient, 'banca' => $banca);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , $url);
curl_setopt($ch, CURLOPT_POST , 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$img = curl_exec($ch);
curl_close($ch);
$imgB64 = base64_encode($img);
echo "<img src='data:image/jpg;base64,{$imgB64}' alt='assinatura'>";
}
?>
</body>
</html>
ex1.php
<?php
$nome = urldecode( $_POST['nome'] );
$cargo = urldecode( $_POST['cargo'] );
$teste = urldecode( $_POST['teste'] );
$orient = urldecode( $_POST['orient'] );
$banca = urldecode( $_POST['banca'] );
// Define por header que será gerado um JPG.
header("Content-type:image/jpeg");
// Recebe o caminho para a Imagem por GET na URL.
$imagem = 'foto.jpg';
// Define-se as dimensões da Imagem, pegando os tamanhos originais da Imagem.
$tamanho = getimagesize($imagem);
$largura = $tamanho[0];
$altura = $tamanho[1];
$fontetitulo = "CANDARAZ.TTF";
$fonte = "CANDARA.TTF";
$fontealuno = "Candarab.ttf";
// Cria-se uma nova Imagem a partir da Imagem Original.
$imagem_original = imagecreatefromjpeg($imagem);
// Cria-se a Imagem Final
$imagem_final = imagecreatetruecolor($largura, $altura);
// Quando utilizamos o imagecolorallocate() pela primeira vez, ele assume essa cor como fundo da imagem, ou seja o background, nesse caso, como será uma foto, utilizaremos a mesma cor para o texto.
$branco = imagecolorallocate($imagem_final, 255, 255, 255);
$preto = imagecolorallocate($imagem_final, 0, 0, 0);
$cordata = imagecolorallocate($imagem_final, 51, 102, 153);
// Copia-se a imagem para o arquivo Final
imagecopyresized($imagem_final, $imagem_original, 0, 0, 0, 0, $largura+1, $altura+1, $largura, $altura);
// Com o comando imagestring() escrevemos os textos, neste comando especificamos os parametros da imagem, o tamanho da fonte que neste caso vai de 1 a 5, a posição X e Y, o texto, e a cor
imagettftext($imagem_final, 18, 0, 25, 187, $preto, $fontetitulo, $cargo);
imagettftext($imagem_final, 14, 0, 147, 278, $preto, $fontealuno, $nome);
imagettftext($imagem_final, 13, 0, 147, 301, $preto, $fonte, $orient);
imagettftext($imagem_final, 14, 0, 340, 112, $cordata, $fonte, $teste);
imagettftext($imagem_final, 13, 0, 23, 375, $preto, $fonte, $banca);
// Salva-se virtualmente para exibição, com a qualidade de JPG de 85
imagejpeg($imagem_final,NULL,100);
// Depois, libera-se a memória utilizada
imagedestroy($imagem_final);
Desde já agradeço muito!
Carregando comentários...