Nitinha 3 Denunciar post Postado Março 12, 2012 Tenho um site na minha empresa que foi desenvolvido em 2009 e a alguns meses atrás ele parou de fazer o upload corretamente das imagens. A princípio ninguém havia mexido no código. Já alterei as permissões das pastas e arquivos relacionados aos uploads para 777 mas continua com problema, a imagem aparece como se o link estivesse quebrado. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 12, 2012 Envia o código do formulário e o código php de upload de arquivos. Compartilhar este post Link para o post Compartilhar em outros sites
Nitinha 3 Denunciar post Postado Março 12, 2012 <?php session_start(); include("includes/software_info.php"); include("includes/functions.php"); include("includes/db.php"); include("includes/date.php"); include("includes/image.php"); include("includes/permission.php"); ?> <? //Recupera o Id do Pai if(isset($_SESSION["id_galeria"])) $id_galeria = $_SESSION["id_galeria"]; if(isset($_POST["acao"]) && $_POST["acao"]=="add") { //recuperando as variaveis do formulario $file = isset($_FILES["file"]) ? $_FILES["file"] : FALSE; $subtitle = $_POST["subtitle"]; $source = $_POST["source"]; //array com os possiveis erros $erro = array(); //flag para controlar os erros $flag = 0; //nome do arquivo $file_name = $file["name"]; if(filesize($_FILES["file"]["tmp_name"])==0) { $erro[] = "Campo foto deve ser preenchido."; $flag = 1; } if(!eregi("^image\/(pjpeg|jpeg|png)$", $file["type"])) { $erro[] = "Arquivo em formato inválido. A imagem deve ser jpg, jpeg ou png. Envie outro arquivo."; $flag = 1; } //abre conexao com o banco de dados $conn = connect(); //nao tem erros if($flag==0) { //gera um nome único para o arquivo $file_explode = explode(".",$file_name); $file_name = renameFile($file_explode[0],$file_explode[1]); //recupera o nome da galeria $sqlQuery = execute("SELECT name FROM galeria_name WHERE id=$id_galeria"); $galeria_name = result($sqlQuery,0,"name"); //recupera o nome do diretorio $dir_name = createDirectoryName($galeria_name); //caminho absoluto do arquivo $path = $PATH_FILES_UPLOADS . $dir_name . $file_name; //caminho relativo $relative_path = $PATH_FILES_UPLOADS . $dir_name; //faz o upload do arquivo move_uploaded_file($file["tmp_name"], $path); //caminho das miniaturas $path_mini = $PATH_FILES_UPLOADS . $dir_name . $DIRECTORY_NAME_THUMB_IMAGE; //cria a miniatura da imagem resize($relative_path, $file_name, $SIZE_THUMB_IMAGE, $path_mini); //string sql para inserir o registro $strSQL = "INSERT INTO galeria_photo (id_galeria, photo,source,subtitle) "; $strSQL .= "VALUES ('$id_galeria','$file_name','$source','$subtitle') "; //executa a query sql $sql = execute($strSQL); //fecha conexao close($conn); } } ?> <html> <head> <title><? echo $title; ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Pragma" content="no-cache"> <link href="design/css/adm.css" rel="stylesheet" type="text/css"> <script language="JavaScript1.2" src="includes/functions.js"></script> </head> <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0"> <table width="775" align="center" cellpadding="0" cellspacing="0"> <tr> <td> <? include("user_info.php"); ?> </td> </tr> <tr> <td> <? include("navbar.php"); ?> </td> </tr> <tr> <td> </td> </tr> <tr> <td> <? if(isset($erro) && sizeof($erro)) { ?> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="F5F3F3"> <td width="20%" valign="top"> <div align="center"><img src="design/images/error.gif" width="32" height="32" vspace="5"></div></td> <td class="text_normal"><span class="text_required">Erro na execução da operação Inserir</span><br> <? foreach($erro as $err) { echo $err . "<br>"; } ?> </td> </tr> </table> <? } ?> <? if(isset($flag) && $flag==0) { ?> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr bgcolor="F5F3F3"> <td width="20%" valign="top"> <div align="center"><img src="design/images/success.gif" width="32" height="32" vspace="5"></div></td> <td class="text_normal"><span class="text_required">Sucesso na execução da operação Inserir</span><br> Produto <? echo $file_name; ?> criado com sucesso.</td> </tr> </table> <? } ?> </td> </tr> <tr> <td class="tit_text"> </td> </tr> <tr> <td class="tit_text">Produto » <? echo $_SESSION["nome"]; ?></td> </tr> <tr> <td> <div align="left"><img src="design/images/dot_green.gif" width="775" height="1"></div></td> </tr> <tr> <td><form action="" method="post" enctype="multipart/form-data" name="form"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td class="text_required"> </td> <td> </td> </tr> <tr> <td width="30%" class="text_required"> <div align="right"><span class="star_required">* </span>Foto:</div></td> <td><input name="file" type="file" class="input" id="file"></td> </tr> <tr> <td class="text_required"> <div align="right" class="text_normal"> Legenda:</div></td> <td><input name="subtitle" type="text" class="input" id="subtitle" value="<? if(isset($_POST["subtitle"])) echo $_POST["subtitle"]; ?>" size="50" maxlength="200"> </td> </tr> <tr> <td class="text_required"> <div align="right" class="text_normal"> Descrição:</div></td> <td><textarea name="source" cols="60" rows="8" class="input"><? if(isset($_POST["source"])) echo $_POST["source"]; ?></textarea> <!--<input name="source" type="text" class="input" id="source" value="<? if(isset($_POST["source"])) echo $_POST["source"]; ?>" size="50" maxlength="100"> --> <input type="hidden" name="acao" value="add"> </td> </tr> <tr> <td class="text_normal"> </td> <td> </td> </tr> <tr> <td colspan="2" class="text_normal"><div align="right"> <input name="button" type="button" class="botao" onClick="javascript:backPage('galeria_photo.php');" value="Voltar"> <input type="submit" name="Submit2" value="Confirmar" class="botao"> </div></td> </tr> </table> </form> </td> </tr> <tr> <td><img src="design/images/dot_green.gif" width="775" height="1"></td> </tr> <tr> <td> </td> </tr> <tr> <td> <? include("footer.php"); ?> </td> </tr> </table> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Março 12, 2012 Parou de fazer upload, ninguém mexeu no código, as pastas estão com permissão... Você já verificou se ainda tem espaço no servidor? Compartilhar este post Link para o post Compartilhar em outros sites
Nitinha 3 Denunciar post Postado Março 12, 2012 Vou entrar em contato com o local de hospedagem do site, não tinha pensado nesta hipótese. Mas no caso de ser isso não apareceria nos erros como o motivo? Ou por não ser bem um erro só apareceria se este tivesse sido configurado? Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 12, 2012 O servidor pode estar com a diretiva display_errors em off ou até error_reporting. Compartilhar este post Link para o post Compartilhar em outros sites
Nitinha 3 Denunciar post Postado Março 13, 2012 O servidor pode estar com a diretiva display_errors em off ou até error_reporting. Entendi. Verifiquei com o suporte de onde o site está hospedado e me informaram que não há limite. A não ser que tenham hackeado o sistema, não houve alteração no código. É provável então que o problema seja com eles? Já descrevi a situação para o suporte e estou no aguardo de uma resposta. Atualizado: recebi um e-mail do suporte me informando que está havendo um erro em outra página nossa. Segue o código com o erro $dir_name = createDirectoryName($produto); $path_absolut = $PATH_GALLERY_UPLOADS . $dir_name . $photo; //a linha abaixo é a com erro V $img = "adm/" . $PATH_GALLERY_UPLOADS . $dir_name . $DIRECTORY_NAME_THUMB_IMAGE . $photo; //echo "<td width='20%'><a href='adm/$path_absolut' rel='lightbox[fotos]' title='$source'><img src='$img' border='0'></a></td>"; //echo "<tr><td width='20%'><a href='#' >$produto</a></td></tr>"; E o erro que aparece é esse "PHP Notice: Undefined variable: photo in /www/www.site.com.br/web/adm/includes/functions.php on line 585, referer: http://www.site.com.br/produtos.php" Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Março 13, 2012 Ele não está encontrando valor para $photo, de onde vem essa variável? Se ninguém mexeu no código talvez eles tenham mudado alguma configuração. Em que versão do PHP o código foi feito? Já verificou se eles não atualizaram? cria uma info.php com o código: phpinfo(); e verifica as versões. Compartilhar este post Link para o post Compartilhar em outros sites
Nitinha 3 Denunciar post Postado Março 13, 2012 O que eu achei sobre $photo linha 483 - 493 while($data=fetch_array($rs)) { $id_galeria_aux = $data["id_galeria"]; $id = $data["id"]; $galeria = $data["galeria"]; $produto = $data["description"]; $galeria_aux = $data["galeria"]; $produto_aux = $data["description"]; $medida = $data["medida"]; $liga = $data["liga"]; $peso = $data["peso"]; $photo = $data["photo"]; linha 503 - 511 $rs2 = execute("$sql2"); while($data2=fetch_array($rs2)) { $galeria_aux = $data2["galeria"]; $produto_aux = $data2["description"]; $medida = $data2["medida"]; $liga = $data2["liga"]; $peso = $data2["peso"]; $photo = $data2["photo"]; } Usando o phpinfo consegui isso PHP Version 5.3.2-1ubuntu4.10 acho que não posso passar o link que vai para esta página, né? Não sei quais informações ali eu posso passar e quais são necessárias. Compartilhar este post Link para o post Compartilhar em outros sites
GabrielFerrari 41 Denunciar post Postado Março 13, 2012 Ta difícil ein? Já tentou fazer um sistema de upload para testar? Será que não vale a pena refazer essa parte? se tiver como rodar ele em localhost para poder ir testando melhor com todos os erros e avisos ativos. Teria que fuçar bem ai para achar o erro, se funcionava e parou do nada. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Março 13, 2012 Tente passar esse mesmo código para um servidor na sua máquina (wamp/xampp) e teste. Como você falou, já verificou permissões das pastas. As vezes, pode ser algo até mais trivial, como permissão da pasta tmp (já tive esse problema, em que foi migrado o servidor, e o novo não possuía permissões para gera o arquivo temporário na pasta tmp :pinch: ), tamanho limite de file upload, nome de arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Lorenzet 0 Denunciar post Postado Março 13, 2012 O patch que ele busca contem a letra da partição onde encontra a pasta? por exemplo: E:\var\www\website\imagens\files ? pode ser que eles tenham trocado de servidor e acabou caindo em outro diretorio... Compartilhar este post Link para o post Compartilhar em outros sites
Nitinha 3 Denunciar post Postado Março 13, 2012 Ta difícil ein? Já tentou fazer um sistema de upload para testar? Será que não vale a pena refazer essa parte? se tiver como rodar ele em localhost para poder ir testando melhor com todos os erros e avisos ativos. Teria que fuçar bem ai para achar o erro, se funcionava e parou do nada. É, estou pensando em refazer o sistema de upload mesmo. Tente passar esse mesmo código para um servidor na sua máquina (wamp/xampp) e teste. Como você falou, já verificou permissões das pastas. As vezes, pode ser algo até mais trivial, como permissão da pasta tmp (já tive esse problema, em que foi migrado o servidor, e o novo não possuía permissões para gera o arquivo temporário na pasta tmp ), tamanho limite de file upload, nome de arquivo. A pasta temp já verifiquei, tamanho limite não é, pois ja usei varias imagens de teste de varios tamanhos diferentes, o nome acabei de fazer o teste, mas não parece ser isso. Vou tentar testar no meu pc mesmo como último teste antes de refazer o sistema. Muito obrigada por todas as respostas, quando achar uma solução posto aqui. Atualizado: achei o problema! Conforme o Gabriel Heming havia sugerido o problema era nos nomes dos arquivos, como tinham acentuações eles davam erro. Muito obrigada a todos pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites