Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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"](http://hidroceres.com.br/rafael.jpg));
?>Está lá sim.
Por favor, eu queria saber o que esta acontecendo.
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"...
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
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".
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
>
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?
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.
Aparece vários caracteres estranhos na página.
Tá... Não tô entendendo mais nada...
Responda às seguintes perguntar, separadamente...
Carlos Eduardo
>
Não da maneira que necessito se eu colocar o header fica dessa maneira:/applications/core/interface/imageproxy/imageproxy.php?img=http://img30.imageshack.us/img30/6223/comheader.th.jpg&key=8c7fc265fa0a8cc9168451ad31950cf6b6d74acd70fc5d5b2b6b1f9c12031f31" alt="Imagem Postada" />
Repare na imagem que aparece apenas a imagem e não o formulario do código que vou postar.
>
Se eu retiro o header aparece isso no navegador..
>
<?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">](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>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
coloca as funcoes num arquivo separado e chama como num outro como tag de imagem....
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;
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.
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