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

Cadastro No Banco De Dados Com Imagem


otaviojames

Pergunta

Amigos, este ai é um codigo de cadastro de um Weblogger que estou desenvolvendo só que estou com grande problema na hora de cadastra nesse script ele ta fazendo o cadastro normalmente esta jogando a imagem na pasta e tals só que o problema esta ocorrendo na hora que vai exibir a imagem ele não esta mandando pro banco de dados a URL da imagem ou seja não esta mandando nada para o campo foto que deveria ser /fotos/ksoaks.jpg ? como eu faço isso ?

<?php

// Prepara a variável caso o formulário tenha sido postado
$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;

$config = array();
// Tamano máximo da imagem, em bytes
$config["tamanho"] = 106883;
// Largura Máxima, em pixels
$config["largura"] = 350;
// Altura Máxima, em pixels
$config["altura"] = 250;
// Diretório onde a imagem será salva
$config["diretorio"] = "fotos/";

// Gera um nome para a imagem e verifica se já não existe, caso exista, gera outro nome e assim sucessivamente..
// Função Recursiva
function nome($extensao)
{
    global $config;

    // Gera um nome único para a imagem
    $temp = substr(md5(uniqid(time())), 0, 10);
    $imagem_nome = $temp . "." . $extensao;

    // Verifica se o arquivo já existe, caso positivo, chama essa função novamente
    if(file_exists($config["diretorio"] . $imagem_nome))
    {
        $imagem_nome = nome($extensao);
    }

    return $imagem_nome;
}

if($arquivo)
{
    $erro = array();

    // Verifica o mime-type do arquivo para ver se é de imagem.
    // Caso fosse verificar a extensão do nome de arquivo, o código deveria ser:
    //
    // if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) {
    //      $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; }
    //
    // Mas, o que ocorre é que alguns usuários mal-intencionados, podem pegar um vírus .exe e simplesmente mudar a extensão
    // para alguma das imagens e enviar. Então, não adiantaria em nada verificar a extensão do nome do arquivo.
    if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))
    {
        $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
    }
    else
    {
        // Verifica tamanho do arquivo
        if($arquivo["size"] > $config["tamanho"])
        {
            $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
        }

        // Para verificar as dimensões da imagem
        $tamanhos = getimagesize($arquivo["tmp_name"]);

        // Verifica largura
        if($tamanhos[0] > $config["largura"])
        {
            $erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
        }

        // Verifica altura
        if($tamanhos[1] > $config["altura"])
        {
            $erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
        }
    }

    if(!sizeof($erro))
    {
        // Pega extensão do arquivo, o indice 1 do array conterá a extensão
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

        // Gera nome único para a imagem
        $imagem_nome = nome($ext[1]);

        // Caminho de onde a imagem ficará
        $imagem_dir = $config["diretorio"] . $imagem_nome;

        // Faz o upload da imagem
        move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
    }
}


if ($nome != "") {
include("conexao.php"); 
$conexao = @mysql_connect($host,$user,$pass)
  or die("Cadastro");

	$query = "INSERT INTO blog VALUES ('$id','$nome','$email','$mensagem','$foto')";


	mysql_select_db($db);

	mysql_query($query,$conexao);

	echo " ENVIADO <script>window.location='blog.php';</script>";

   
}

else {

?>

<form action="<?echo $PHP_SELF?>" method=post  ENCTYPE="multipart/form-data">



<input type="hidden" name="cat" value="<?echo $id?>">

Nome:<input type="text" name="nome" size="45"><br>
email: 
<input type="text" name="email" size="45">
<br>
mensagem: 
<input type="text" name="mensagem" size="45">
<br>
<br>

imagem: 
<input type=file size=30 name=foto>
<br>
<br>



<input type="submit" value=":::  Adicionar Noticia   :::" name="B3" ><?php
} 
?>

Valewww galera esperu uma resposta!!

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Cara... não poste 3 mensagens seguidas em hipótese alguma, ok?

Isso é flood e o seu tópico será trancado se você fizer de novo, viu?

Use o botão Editar, fica ali em cima do post, perto de Citar e Reportar... happy.gif

[editado]

Sobre o seu problema: você entendeu que aquela variável ali guarda o novo caminho da imagem, certo?

Então insira ela no campo onde será salvo esse endereço na DataBase, ué...[/editado]

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
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...