Holt 1 Denunciar post Postado Julho 22, 2010 Já estou um tempo empacado aqui nos códigos com esse problema... O comando file_exists tá sempre me retornando false... Estou verificando pela URL pra ver se a imagem existe... Mas... Sempre tá me retornando que não existe :S Segue o trecho de código; PS: O file_exists está na 5ª linha if(isset($_POST['url'])){ $url = $_POST['url']; $eimg = "/^(.*).(gif|jpg|jpeg|png|bmp|dib|tif|tiff)$"; if(preg_match("$eimg".'/i', $url) | preg_match("$eimg".'/'.'/i', $url)){ if(file_exists($url)){ $tamimg = getimagesize($url); if($tamimg[0] > 60 | $tamimg[1] > 60){ echo voltaFormlogin('Imagem muito grande, ela deve ter no máximo 60px X 60px'); }else{ $verifica = ("update users set urlimg = '$url' where user = '$user';"); $query = "SET NAMES 'utf8';"; $utf = mysql_query("$query"); $conta = mysql_query("$verifica"); echo 'Avatar atualizado<br />Clique <a href="javascript:window.parent.location='."'login.php'".'">Aqui</a> e logue novamente'; } }else{ echo voltaFormlogin('O arquivo não foi encontrado'); } }else{ if($_POST['url'] == ''){ echo voltaFormlogin('Preencha o campo com a URL da imagem'); }else{ echo voltaFormlogin('As únicas extensões possíveis são: gif, jpg, jpeg, png, bmp, dib, tif e tiff'); } } Compartilhar este post Link para o post Compartilhar em outros sites
zrod 0 Denunciar post Postado Julho 22, 2010 Qual o ambiente? Windows? Linux? o $url contém o Path para o arquivo? Exemplo '/imagens/arquivo.jpg' Ou, o arquivo fica no mesmo local que o script? Qual o retorno de var_dump($url) ? Compartilhar este post Link para o post Compartilhar em outros sites
Holt 1 Denunciar post Postado Julho 22, 2010 Qual o ambiente? Windows? Linux? o $url contém o Path para o arquivo? Exemplo '/imagens/arquivo.jpg' Ou, o arquivo fica no mesmo local que o script? Qual o retorno de var_dump($url) ? Windows, Wampserver 2.0;a $url tem a URL que o usuário informa para imagem no estilo 'http://www.google.com.br/intl/en_com/images/srpr/logo1w.png'; vardump($url) retorna: para:'http://www.teste.com.br/imagem.gif' (esta imagem não existe) string(34) "http://www.teste.com.br/imagem.gif" para:'http://www.google.com.br/intl/en_com/images/srpr/logo1w.png' (esta imagem existe) string(59) "http://www.google.com.br/intl/en_com/images/srpr/logo1w.png" para:'a.gif' (esta estaria no formato errado de preencher o campo, já que teria que ser uma URL de fora) string(5) "a.gif" Compartilhar este post Link para o post Compartilhar em outros sites
Daniel Ribeiro 4 Denunciar post Postado Julho 22, 2010 file_exists não funciona com requisições remotas. Segue aí uma implementação para o que você quer: function url_exists($url) { // Version 4.x supported $handle = curl_init($url); if (false === $handle) { return false; } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_FAILONERROR, true); // this works curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15")); // request as if Firefox curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); $connectable = curl_exec($handle); curl_close($handle); return $connectable; } Compartilhar este post Link para o post Compartilhar em outros sites
Holt 1 Denunciar post Postado Julho 22, 2010 Funcionou agora... mas.. Notice: Use of undefined constant CURLOPT_FAILonerror - assumed 'CURLOPT_FAILonerror' in C:\Server\www\alfa\mudarpessoal.php on line 45 Warning: curl_setopt() expects parameter 2 to be long, string given in C:\Server\www\alfa\mudarpessoal.php on line 45 Tá retornando este erro tanto pra uma imagem que exista, quanto para uma imagem que não exista... Mas está funcionando, atualizando no BD quando existe, não atualizando quando não existe... PS: linha 45: curl_setopt($handle, CURLOPT_FAILonerror, true); // this works Compartilhar este post Link para o post Compartilhar em outros sites
Holt 1 Denunciar post Postado Julho 22, 2010 Concertei, era só aquele pedaço do código que estava em minúsculo ali no 'CURLOPT_FAILonerror' que deveria estar em maiúsculo; :clap: Se alguém precisar; function url_exists($url) { $handle = curl_init($url); if (false === $handle) { return false; } curl_setopt($handle, CURLOPT_HEADER, false); curl_setopt($handle, CURLOPT_FAILONERROR, true); curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15")); curl_setopt($handle, CURLOPT_NOBODY, true); curl_setopt($handle, CURLOPT_RETURNTRANSFER, false); $connectable = curl_exec($handle); curl_close($handle); return $connectable;}PS: editei, mas quando salvo aparece em minúsculo de novo :S quando clico em editar aparece em maiúsculo de volta (OMG) Compartilhar este post Link para o post Compartilhar em outros sites