Ir para conteúdo
Fórum Script Brasil
  • 0

Sistema não salva o nome da imagem


anabon

Pergunta

Boa noite pessoal,

Em pesquisa na internet sobre meu dilema que já se leva dois dias, observei varias soluções a qual nenhuma se encaixou em meu dilema. Estou fazendo um pequena sistema em PHP com mysql onde é possível o cadastro do produto com foto. Porem as informações todas estão sendo salvas no banco, menos o nome da foto. Peço a ajuda de vocês pois já revirei e não encontro o erro.

Conexão com o banco:

<?php
// Conexão com o banco de dados
$conn = @mysql_connect("localhost", "root", "root") or die ("Problemas na conexão.");
$db = @mysql_select_db("gerenciador", $conn) or die ("Problemas na conexão");
?>

<form action="" method="post" enctype="multipart/form-data" name="cadastro" >
Descrição:<br />
<input type="text" name="descricao" size="100" /><br /><br />
R$ Valor:<br />
<input type="text" name="valor" size="100"/><br /><br />
Categoria:<br />
<input type="text" name="categoria"size="100" /><br /><br />
Foto de exibição:<br />
<input type="file" name="foto" size="100" /><br /><br />
<input type="submit" name="cadastrar" value="Cadastrar" />


<?php
// Se o usuário clicou no botão cadastrar efetua as ações
if (isset($_POST['cadastrar'])){


// Recupera os dados dos campos
$descricao = $_POST['descricao'];
$valor = $_POST['valor'];
$categoria = $_POST ['categoria'];
$foto = $_FILES["foto"];
    $nome_imagem = "";
    $error = array();
    if(isset($_FILES['foto'])){
    $foto = $_FILES['foto'];
}




  
// Se a foto estiver sido selecionada
if (!empty($_FILES['foto'])) {


// Largura máxima em pixels
$largura = 150;
// Altura máxima em pixels
$altura = 180;
// Tamanho máximo do arquivo em bytes
$tamanho = 1000;


      // Verifica se o arquivo é uma imagem
     if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){
         $error[1] = "Isso não é uma imagem.";
      } 




// Pega as dimensões da imagem
$dimensoes = getimagesize($foto["tmp_name"]);


// Verifica se a largura da imagem é maior que a largura permitida
if($dimensoes[0] > $largura) {
$error[2] = "A largura da imagem não deve ultrapassar ".$largura." pixels";
}


// Verifica se a altura da imagem é maior que a altura permitida
if($dimensoes[1] > $altura) {
$error[3] = "Altura da imagem não deve ultrapassar ".$altura." pixels";
}


// Verifica se o tamanho da imagem é maior que o tamanho permitido
if($foto["size"] > $tamanho) {
      $error[4] = "A imagem deve ter no máximo ".$tamanho." bytes";
}


// Se não houver nenhum erro
if (count($error) == 0) {


// Pega extensão da imagem
preg_match("/.(gif|bmp|png|jpg|jpeg){1}$/i", $foto["name"], $ext);


         // Gera um nome único para a imagem
         $nome_imagem = md5(uniqid(time())) . "." . $ext[1];


         // Caminho de onde ficará a imagem
         $caminho_imagem = ".../gerenciador galaxy/Fotos/" . $nome_imagem;
             $nome_imagem = $nome_imagem;


// Faz o upload da imagem para seu respectivo caminho
move_uploaded_file($foto["tmp_name"], $caminho_imagem);
} 
if (count($error) != 0) { 
foreach ($error as $erro) { 
echo $erro . "<br />"; 




} 
} 
} 


$result = mysql_query ("INSERT INTO produtos(descricao, valor, categoria, foto)VALUE('$descricao', '$valor', '$categoria', '$nome_imagem')")or die("Erro no query ".mysql_error());


}


?>

Desde já agradeço que puder me ajudar!!!!

Editado por anabon
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Você tem certeza que na estrutura da tabela campo "foto" é varchar ou similar? Porque se for int ficará zerado.

Fico na dúvida qual o motivo pelo qual você faz

$nome_imagem = $nome_imagem;

após
$caminho_imagem = ".../gerenciador galaxy/Fotos/" . $nome_imagem;
Mas aparentemente teria de funcionar; coloca um echo ou var_dump apos

$nome_imagem = md5(uniqid(time())) . "." . $ext[1];

para ver o que gerou.

Editado por marmion
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...