Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

crawler

[Resolvido] Criar imagens em servidor remoto da erro

Recommended Posts

Estou começando a trabalhar com a biblioteca GD, Aqui em localhost rodou perfeitamente.

 

Porem no servidor remoto me retorna sempre o mesmo erro:

 

"Warning: imagejpeg() [function.imagejpeg]: Unable to open 'rafael.jpg' for writing in C:\Inetpub\vhosts\hidroceres.com.br\httpdocs\teste.php on line 8"

 

Já tentei quase tudo, as permissoes ja estao liberadas para esse diretorio e nesse arquivo tambem,

a biblioteca GD esta ativada no servidor e eu não sei o que pode esta acontecendo.

 

Código

<?php   
  $imagem = imagecreate(120, 30);
  $CorFundo = imagecolorallocate($imagem, 10, 140, 190);
  $CorFonte = imagecolorallocate($imagem, 255, 255 , 255);
 
 imagestring($imagem, 5, 20, 8,"rafael", $CorFonte);
  
  imagejpeg($imagem, "http://hidroceres.com.br/rafael.jpg"); 
 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo existe neste endereço? Tente abrir diretamente pelo navegador, usando o endereço completo, pra ver se a imagem está realmente lá.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, parece que você está tentando salvar a imagem em outro servidor.

imagejpeg() criando "$imagem" em "http://hidroceres.com.br/" com o nome "rafael.jpg".

verifique as pemissões do servidor hidroceres.com.br para ver se ele deixa outro servidor "mexer" nas coisas dele.

 

a menos q estejas apenas querendo criar outra imagem com base na imagem "rafael.jpg"...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá errado a utilização.

 

O segundo parâmetro é 'O caminho para salvar o arquivo. Se não definido ou NULL, o stream da imagem será mostrado diretamente.

Para pular este argumento para fornecer o parâmetro quality , use NULL.' Fonte - http://br.php.net/manual/pt_BR/function.imagejpeg.php

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora deu certo sim. Porém meu objetivo é fazer um "captcha" e para fazer validação da mesma preciso salvar

a imagem em arquivo, se eu usar um header("Content-type: image/jpeg") a pagina toda se transforma em imagem e não da pra fazer a validação.

 

Aqui em localhost funciona, mas no servidor remoto retorna esse erro.

 

"Warning: imagejpeg() [function.imagejpeg]: Unable to open 'rafael.jpg' for writing in C:\Inetpub\vhosts\hidroceres.com.br\httpdocs\teste.php on line 8".

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 coisas...

 

Você leu o meu post anterior? Se leu, corrigiu e continua dando erro, vamos a segunda coisa. Como está seu código neste momento, já que você 'conseguiu' fazer?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

2 coisas...

 

Você leu o meu post anterior? Se leu, corrigiu e continua dando erro, vamos a segunda coisa. Como está seu código neste momento, já que você 'conseguiu' fazer?

 

Carlos Eduardo

 

Consegui sim dessa maneira:

<?php   
  header("Content-type: image/jpeg");
  $imagem = imagecreate(120, 30);
  $CorFundo = imagecolorallocate($imagem, 10, 140, 190);
  $CorFonte = imagecolorallocate($imagem, 255, 255 , 255);
 
 imagestring($imagem, 5, 20, 8,"rafael", $CorFonte);
  
  imagejpeg($imagem, null, 50); 
 
?>

Se eu não colocar o header vai aparecer milhoes de caracteres estranhos na página correto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu não colocar o header vai aparecer milhoes de caracteres estranhos na página correto?

Testa pra ver, deixe sem e veja o que acontece.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá... Não tô entendendo mais nada...

 

Responda às seguintes perguntar, separadamente...

- Está funcionando?

- Se não, qual erro aparece?

- Qual o código que você está usando?

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

- Está funcionando?

 

Não da maneira que necessito se eu colocar o header fica dessa maneira:

Imagem Postada

Repare na imagem que aparece apenas a imagem e não o formulario do código que vou postar.

 

- Se não, qual erro aparece?

 

Se eu retiro o header aparece isso no navegador..

Imagem Postada

 

- Qual o código que você está usando?

 

<?php
// header("Content-type: image/jpeg"); 
 
  //função que cria as letras aleatorias
    function captcha($qtdeletras){
  	  $letras = "0123456789abcdefghijklmnopqrstuvwxyz";
   
 	  for ($i=0; $i < $qtdeletras; $i++){
    	     $captcha .= $letras{rand(0,strlen($letras) -1)};     
    	   }
 	  return $captcha;	   
    } 
  
  function DesenhaCaptcha(){ 
   
  global $captcha; 
   
  $captcha = captcha(9); 
  $imagem = imagecreate(130, 30);
  $CorFundo = imagecolorallocate($imagem, 10, 140, 190);
  $CorFonte = imagecolorallocate($imagem, 255, 255 , 255);
 
 imagestring($imagem, 5, 26, 8, $captcha, $CorFonte);
  
  ImageJpeg($imagem, null, 60); 
 }
 
 DesenhaCaptcha();
   
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
 function validaform(){
  var captcha ="<?php echo $captcha; ?>";
  
  if (document.form1.txtvalor.value != captcha){
      alert("Valor Incorreto");
	  return false;
	 }            
 }
</script>
</head>

<body>
<form id="form1" name="form1" method="post" action="#" onsubmit="return validaform()">
  <table width="340" border="0" cellpadding="1" cellspacing="1">
    <tr>
      <td width="150"><img src="./captcha.jpg" /></td>
      <td width="183"><div align="right">
        <input type="text" name="txtvalor" id="textfield" />
      </div></td>
    </tr>
    <tr>
      <td> </td>
      <td><div align="right">
        <input type="submit" name="button" id="button" value="Verificar" />
      </div></td>
    </tr>
  </table>
</form>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, o que eu te aconselho a fazer.

 

Pega um sistema de captcha pronto - por exemplo, recaptcha - e veja o funcionamento. Daí você vai achar a solução para o seu.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui atingir o objetivo, com o uso de variaveis $_SESSION pude fazer a validação

e ta funcionando certinho.

 

A unica coisa que eu gostaria de saber se é seguro o uso de $_SESSIONS como

variaveis globais?

 

Vlw pessoal. Brigadao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ela por si só já possui escopo global, entretanto, é uma forma segura, mais não 100%, depende de como você fará as validações etc.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.