Jump to content

AiltonSP

Members
  • Content count

    35
  • Joined

  • Last visited

Community Reputation

0 Comum

About AiltonSP

  1. AiltonSP

    Upload e thumbs de fotos com erro

    Boa noite galera. Estou com um grande problema. Estou desenvolvendo um sistema de upload e resize de fotos, ele pega a foto da pasta em tamanho normal, diminui ela em dois tamanhos e salva em duas pastas chamadas Fotosg e Fotosp. O sistema dará opção para o usuário inserir até 10 fotos, uma de cada vez. A primeira opção de envio está funcionando normalmente, mas da segunda em diante não funciona. Estou usando o método GET, e quando tento enviar da segunda em diante no navegador aparece a página em branco e o endereço: http://localhost/teste/UpLoadFuncoes.php?funcao=Foto2 Os códigos estão idênticos, só mudando os nomes dos campos. Já revisei dezenas de vezes e não acho nenhum erro. Segue os código: UploadFotos.php <form id="" method="POST" action="UpLoadFuncoes.php?funcao=FotoPrincipal" enctype="multipart/form-data" onSubmit="submit.disabled = 'disabled';"> <div id="bordas" style="height:30px; width:310px; text-align:center; padding-top:8px; top:12px; left:10px; background-color:#FFF; margin-top:28px; margin-left:45px; float:left; "> <input id="img1" type="file" size="75" maxlength="350" name="img1" value="" /> </div> <div style=" height:17px; width:50px; padding-top:1px; left:10px; margin-top:12px; margin-left:160px; text-align:center; float:inherit;"> <input class="button1" type="submit" id="submit" name="submit" value="Enviar" /> </div> </form> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx UpLoadFuncoes.php $PastaFotog = "./fotosg/"; $PastaFotop = "./fotosp/"; if($_GET['funcao'] == "FotoPrincipal" && is_file($_FILES['img1']['tmp_name'])){ // compara a função e o arquivo $upload_tmp = (!empty($_FILES['img1']['tmp_name'])) ? $_FILES['img1']['tmp_name'] : ''; //Se o arquivo foi enviado ao servidor, serão feitas algumas checagens no arquivo if (is_uploaded_file($upload_tmp)) { //Armazena em um array, as extensões de arquivo que serão aceitas $img_types = array(".gif", ".jpg", ".jpeg", ".JPG", ".JPEG", ".png"); //armazena na variável $img, o nome de upload do arquivo, que é img. $img = $_FILES['img1']; /*pega o nome da imagem, pega tudo o que estiver antes do ponto ".", *deixando a extensão de fora. */ $img_name = strtolower(substr($img['name'], 0, strrpos($img['name'],"."))); $img_name = time(); //pega somente a extensão do arquivo, tudo o que estiver depois do pnto $img_ext = strtolower(strrchr($img['name'], ".")); //diretório temporário, onde a imagem ficará até ter o seu tamanho reduzido. $img_tmp_dest = "./fototemp/"; //faz uma verificação no nome da imagem, que só poderá conter letras e números. if (!preg_match("/^[-0-9A-Z_\' '[\]]+$/i", $img_name)) { echo ("<script>alert('A imagem deve ter um nome legivel.');location='UploadFotos.php';</script>"); /*chega se o tamanho da imagem que está sendo usada no upload tem tamanho *maior que o estabelecido previamente. */ } elseif ($img['size'] > $settings['img_max_b']) { echo ("<script>alert('A imagem deve ter tamanho menor/igual a 3000 bytes.');location='UploadFotos.php';</script>"); /*E se o formato do arquivo que está sendo usado no upload não for um dos aceitos...*/ } elseif (!in_array($img_ext, $img_types)) { echo("<script>alert('São aceitos os seguintes formatos de arquivos: .gif, .jpg, .jpeg, .JPG, .JPEG, .png.');location='UploadFotos.php';</script>"); for($i = 0; $i < count($img_types); $i++) { if(count($img_types[$i])) { echo($img_types[$i] . ",\n\t"); } } } else { //captura a imagem que se encontra no diretório temporário que criamos. $img_file = image_exists($img_tmp_dest, $img_name . $img_ext); /*E então copia a imagem que está em $_FILES['img']['tmp_name'] para o nosso *diretório temporário. */ move_uploaded_file($upload_tmp, $img_tmp_dest . $img_file); /*Modifica as permissões de acesso ao arquivo. * Escrita e leitura para o proprietário, somente leitura para todos os outros. */ chmod($img_tmp_dest . $img_file, 0644); //pega a largura, a altura e o tipo de imagem que está sendo usada. list($width, $height, $type) = @getimagesize($img_tmp_dest . $img_file); /*Se preferir use assim: */ $imagefile = getimagesize($img_tmp_dest . $img_file); if ($imagefile[0] > 3000 || $imagefile[1] > 1700) { echo ("<script>alert('Imagem muito grande, escolha uma com até 3000 x 1700 pixels.');location='UploadFotos.php';</script>"); } else { //cria um nome diferente para a imagem menor $img_thumb = image_exists($img_tmp_dest, $img_name . "p" . $img_ext); //cria um nome diferente para a imagem maior $img_thumb2 = image_exists($img_tmp_dest, $img_name . $img_ext); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho menor. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb, $settings['thumb_w'], $settings['thumb_h'], $settings['thumb_compression']); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho maior. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb2, $settings['thumb_w2'], $settings['thumb_h2'], $settings['thumb_compression']); /*copia a imagem, já redimensionada, para a pasta fotosp*/ copy($img_tmp_dest . $img_thumb, "./fotosp/" . $img_thumb); if($FotoPrincipalp != "SemFoto.png"){ unlink("./fotosp/$FotoPrincipalp"); // apaga o aquivo na pasta fotos } else{ ($FotoPrincipalp == $FotoPrincipalp); } /*copia a imagem de tamanho maior para a pasta grande*/ copy($img_tmp_dest . $img_thumb2, "./fotosg/" . $img_file); if($FotoPrincipal != "SemFoto.png"){ unlink("./fotosg/$FotoPrincipal"); // apaga o aquivo na pasta fotos }else{ ($FotoPrincipal = $FotoPrincipal); } /*apaga o conteúdo da pasta temporária que usamos durante todo o processo*/ unlink($img_tmp_dest . $img_thumb); unlink($img_tmp_dest . $img_thumb2); unlink($img_tmp_dest . $img_file); /* Salva o nome no bancode dados */ $MySQLi->query("UPDATE clientes SET FotoPrincipal='$img_file', FotoPrincipalp='$img_thumb' WHERE id='572'") or die (mysql_error()); echo ("<script>alert('Foto Principal enviada com sucesso!');location='UploadFotos.php';</script>"); } } } else { echo ("<script>alert('Erro no envio! Verifique o tamanho do arquivo e tente novamente!');location='UploadFotos.php';</script>"); } } xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Opção de envio da segunda foto que não funciona <form method="post" action="UpLoadFuncoes.php?funcao=Foto2" enctype="multipart/form-data" onSubmit="submit.disabled = 'disabled';"> <div id="bordas" style="height:30px; width:310px; text-align:center; padding-top:8px; top:12px; left:10px; background-color:#FFF; margin-top:28px; margin-left:45px; float:left; "> <input id="img2" type="file" size="75" maxlength="350" name="img2" value=""/> </div> <div style=" height:17px; width:50px; padding-top:1px; left:10px; margin-top:12px; margin-left:160px; text-align:center; float:inherit;"> <input class="button2" type="submit" id="submit2" onClick="this.className = 'button2 disabled';" name="submit2" value="Enviar" /> </div> </form> xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx if($_GET['funcao'] == "Foto2" && is_file($_FILES['img2']['tmp_name'])){ // compara a função e o arquivo $upload_tmp = (!empty($_FILES['img2']['tmp_name'])) ? $_FILES['img2']['tmp_name'] : ''; //Se o arquivo foi enviado ao servidor, serão feitas algumas checagens no arquivo if (is_uploaded_file($upload_tmp)) { //Armazena em um array, as extensões de arquivo que serão aceitas $img_types = array(".gif", ".jpg", ".jpeg", ".JPG", ".JPEG", ".png"); //armazena na variável $img, o nome de upload do arquivo, que é img. $img = $_FILES['img2']; /*pega o nome da imagem, pega tudo o que estiver antes do ponto ".", *deixando a extensão de fora. */ $img_name = strtolower(substr($img['name'], 0, strrpos($img['name'],"."))); $img_name = time(); //pega somente a extensão do arquivo, tudo o que estiver depois do pnto $img_ext = strtolower(strrchr($img['name'], ".")); //diretório temporário, onde a imagem ficará até ter o seu tamanho reduzido. $img_tmp_dest = "./fototemp/"; //faz uma verificação no nome da imagem, que só poderá conter letras e números. if (!preg_match("/^[-0-9A-Z_\' '[\]]+$/i", $img_name)) { echo ("<script>alert('A imagem deve ter um nome legivel.');location='UploadFotos.php';</script>"); /*chega se o tamanho da imagem que está sendo usada no upload tem tamanho *maior que o estabelecido previamente. */ } elseif ($img['size'] > $settings['img_max_b']) { echo ("<script>alert('A imagem deve ter tamanho menor/igual a 3000 bytes.');location='UploadFotos.php';</script>"); /*E se o formato do arquivo que está sendo usado no upload não for um dos aceitos...*/ } elseif (!in_array($img_ext, $img_types)) { echo("<script>alert('São aceitos os seguintes formatos de arquivos: .gif, .jpg, .jpeg, .JPG, .JPEG, .png.');location='UploadFotos.php';</script>"); for($i = 0; $i < count($img_types); $i++) { if(count($img_types[$i])) { echo($img_types[$i] . ",\n\t"); } } } else { //captura a imagem que se encontra no diretório temporário que criamos. $img_file = image_exists($img_tmp_dest, $img_name . $img_ext); /*E então copia a imagem que está em $_FILES['img']['tmp_name'] para o nosso *diretório temporário. */ move_uploaded_file($upload_tmp, $img_tmp_dest . $img_file); /*Modifica as permissões de acesso ao arquivo. * Escrita e leitura para o proprietário, somente leitura para todos os outros. */ chmod($img_tmp_dest . $img_file, 0644); //pega a largura, a altura e o tipo de imagem que está sendo usada. list($width, $height, $type) = @getimagesize($img_tmp_dest . $img_file); /*Se preferir use assim: */ $imagefile = getimagesize($img_tmp_dest . $img_file); if ($imagefile[0] > 3000 || $imagefile[1] > 1700) { echo ("<script>alert('Imagem muito grande, escolha uma com até 3000 x 1700 pixels.');location='UploadFotos.php';</script>"); } else { //cria um nome diferente para a imagem menor $img_thumb = image_exists($img_tmp_dest, $img_name . "p" . $img_ext); //cria um nome diferente para a imagem maior $img_thumb2 = image_exists($img_tmp_dest, $img_name . $img_ext); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho menor. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb, $settings['thumb_w'], $settings['thumb_h'], $settings['thumb_compression']); /*Aqui é usada a função createthumbnail() que criamos anteriormente *para gerar as imagens de tamanho maior. */ createthumbnail($type, $img_tmp_dest . $img_file, $img_tmp_dest . $img_thumb2, $settings['thumb_w2'], $settings['thumb_h2'], $settings['thumb_compression']); /*copia a imagem, já redimensionada, para a pasta fotosp*/ copy($img_tmp_dest . $img_thumb, "./fotosp/" . $img_thumb); if($Foto2p != "SemFoto.png"){ unlink("./fotosp/$Foto2p"); // apaga o aquivo na pasta fotos } else{ ($Foto2p == $Foto2p); } /*copia a imagem de tamanho maior para a pasta grande*/ copy($img_tmp_dest . $img_thumb2, "./fotosg/" . $img_file); if($Foto2 != "SemFoto.png"){ unlink("./fotosg/$Foto2"); // apaga o aquivo na pasta fotos }else{ ($Foto2 = $Foto2); } /*apaga o conteúdo da pasta temporária que usamos durante todo o processo*/ unlink($img_tmp_dest . $img_thumb); unlink($img_tmp_dest . $img_thumb2); unlink($img_tmp_dest . $img_file); /* Salva o nome no bancode dados */ $MySQLi->query("UPDATE clientes SET Foto2='$img_file', Foto2p='$img_thumb' WHERE id='572'") or die (mysql_error()); echo ("<script>alert('Foto 2 enviada com sucesso!');location='UploadFotos.php';</script>"); } } } else { echo ("<script>alert('Erro no envio! Verifique o tamanho do arquivo e tente novamente!');location='UploadFotos.php';</script>"); } }
  2. Perfeito, funcionou direitinho Williams Duarte. Obrigado Beraldo pela ótima explicação. Valeu amigos, ajudaram muito.
  3. Continua dando o mesmo erro. Strict standards: Only variables should be passed by reference in C:\wamp\www\tebuscando\Upload.class.php on line 22
  4. Alguém pode dar uma ajuda neste código para upload de imagens. Está dando o seguinte erro: Strict standards: Only variables should be passed by reference in C:\wamp\www\tebuscando\Upload.class.php on line 18 A linha 18 está marcada abaixo. <?php class Upload{ private $arquivo; private $altura; private $largura; private $pasta; function __construct($arquivo, $altura, $largura, $pasta){ $this->arquivo = $arquivo; $this->altura = $altura; $this->largura = $largura; $this->pasta = $pasta; } private function getExtensao(){ //retorna a extensao da imagem return $extensao = strtolower(end(explode('.', $this->arquivo['name']))); } private function ehImagem($extensao){ $extensoes = array('gif', 'jpeg', 'jpg', 'png'); // extensoes permitidas if (in_array($extensao, $extensoes)) return true; } //largura, altura, tipo, localizacao da imagem original private function redimensionar($imgLarg, $imgAlt, $tipo, $img_localizacao){ //descobrir novo tamanho sem perder a proporcao if ( $imgLarg > $imgAlt ){ $novaLarg = $this->largura; $novaAlt = round( ($novaLarg / $imgLarg) * $imgAlt ); } elseif ( $imgAlt > $imgLarg ){ $novaAlt = $this->altura; $novaLarg = round( ($novaAlt / $imgAlt) * $imgLarg ); } else // altura == largura $novaAltura = $novaLargura = max($this->largura, $this->altura); //redimencionar a imagem //cria uma nova imagem com o novo tamanho $novaimagem = imagecreatetruecolor($novaLarg, $novaAlt); switch ($tipo){ case 1: // gif $origem = imagecreatefromgif($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagegif($novaimagem, $img_localizacao); break; case 2: // jpg $origem = imagecreatefromjpeg($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagejpeg($novaimagem, $img_localizacao); break; case 3: // png $origem = imagecreatefrompng($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagepng($novaimagem, $img_localizacao); break; } //destroi as imagens criadas imagedestroy($novaimagem); imagedestroy($origem); } public function salvar(){ $extensao = $this->getExtensao(); //gera um nome unico para a imagem em funcao do tempo $novo_nome = time() . '.' . $extensao; //localizacao do arquivo $destino = $this->pasta . $novo_nome; //move o arquivo if (! move_uploaded_file($this->arquivo['tmp_name'], $destino)){ if ($this->arquivo['error'] == 1) return "Tamanho excede o permitido"; else return "Erro " . $this->arquivo['error']; } if ($this->ehImagem($extensao)){ //pega a largura, altura, tipo e atributo da imagem list($largura, $altura, $tipo, $atributo) = getimagesize($destino); // testa se é preciso redimensionar a imagem if(($largura > $this->largura) || ($altura > $this->altura)) $this->redimensionar($largura, $altura, $tipo, $destino); } return "Sucesso"; } } ?>
  5. AiltonSP

    Qual comando uso para inserir dados em um BD com MySQLi?

    Opa. Funcionou. O problema estava no i do mysqlI_connect, que está em maiúsculo. Valeu.
  6. AiltonSP

    Qual comando uso para inserir dados em um BD com MySQLi?

    Vi seu artigo e até baixei a apostila, mas ainda não consegui fazer o insert funcionar. Segue o script: <?php $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'alunos'; // conexão e seleção do banco de dados $con = mysqlI_connect($host, $user, $pass, $db); $con->query('INSERT INTO teste (nome, idade) VALUES (José, 20)') or die(mysql_error()); /** insere o conteudo digitado no banco e dados **/ mysqli_close($con); ?>
  7. Qual comando posso usar para inserir dados em um BD, usando MySQLi? Quando uso o comando abaixo dá erro, já pesquisei muito, mas não consegui nada que fizesse funcionar. $sql_db = mysql_query('INSERT INTO teste (nome, idade) VALUES (jose, 10)') or die(mysql_error()); Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead Obrigado!
  8. Estou usando o PHP mesmo. Só nesta parte do código que não funciona.
  9. Boa tarde galera! Como posso atualizar este código para que ele possa funcionar em MySQLi? Em mysql ele funciona normalmente, mas já tentei atualizá-lo e não consigo. Preciso verificar se um e-mail cadastrado já se encontra no banco de dados, mas ele não consegue fazer a contagem. $sql = mysql_query("SELECT * FROM clientes where Email = '$email1'"); while($linha = mysql_fetch_array($sql)){ $texto_id = $linha['id']; } $cont = mysql_num_rows($sql); Obrigado!
  10. AiltonSP

    O que está errado no código?

    Obrigado a todos e android17 você conseguiu achar o erro. Valeu!
  11. AiltonSP

    O que está errado no código?

    Bom dia pessoal! Não consigo exibir dados do banco de dados usando uma consulta pelo mysqli, sendo que esta mesma conexão funciona perfeitamente no mysql. Onde estou errando? Ou será a configuração do php? Já tentei de diversas maneiras e sempre dá o mesmo erro na mesma linha. <?php $PegaNumeroId = 131; 44 $consulta = "SELECT * FROM clientes where Id = '$PegaNumeroId'"; 45 $pegar = $MySQLi->query($consulta) or die($mysql->error); 46 47 while ($linha = $pegar->fetch_array()) { $Id = $linha['Id']; $Email = $linha['Email']; ?> Segue o erro: Notice: Undefined variable: MySQLi in C:\wamp\www\tebuscando\ExibirPerfil.php on line 45 Fatal error: Call to a member function query() on a non-object in C:\wamp\www\tebuscando\ExibirPerfil.php on line 45
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.