Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarVinOlivieraS

Enviar imagem através de formulário com PHP

Recommended Posts

Boa tarde, estou aprendendo php desenvolvendo um sistema de notícias, e como todo principiante já enfrentei diversos problemas, agora estou quebrando a cabeça para tentar cadastrar uma notícia no bd mysql e junto fazer o upload de uma imagem que vai aparecer junto à notícia. Já andei pesquisando no google e encontrei algumas alternativas mas como não sei qual a forma mais efetiva e segura decidi pedir a ajuda de vcs.

 

tenho um formulário:

 

<form action="inserir.php" method="post">

<label for="nome">Nome: </label>
<input name="nome" id="nome" type="text" />

<label for="sobrenome">Sobrenome: </label>
<input name="sobrenome" id="sobrenome" type="text" /><br />

<label for="cidade">Cidade: </label>
<input name="cidade" id="cidade" type="text" /><br />

<label for="estado">Estado: </label>
<input name="estado" id="estado" type="text" /><br />

<label for="email">Email: </label>
<input name="email" id="email" type="text" /><br />

<label for="titulo">Título do Texto: </label>
<input name="titulo" id="titulo" type="text" /><br />

<label for="resumo">Resumo do Texto:</label>
<input name="subtitulo" id="resumo" type="text" ><br />

<label for="noticia">Texto: </label>
<textarea name="texto" id="texto" rows="10" cols="30" />
</textarea><br />
<input name="imagem" type="file" size="30">
<input type="submit" value="Cadastrar">

</form>

 

e o inserir.php:

?php require('noticiasbd.php'); ?>
<?php
$data=date('d/m/y');
$hora=date('H:i:s'); 
$sql="INSERT INTO $tabela (nome, sobrenome, cidade, estado, email, data, hora, titulo, subtitulo, texto) VALUES ('$nome', '$sobrenome', '$cidade', '$estado', '$email', '$data', '$hora', '$titulo', '$subtitulo', '$texto')";

//conectando a base de dados MySql



$sql=mysql_query($sql)
or die ("Erro na query");
//onde string message = mensagem retorno de erro de gravaçao de dados

echo "Parabéns o cadastro foi efetuado com sucesso.";
?>

 

no meu bd já tenho uma coluna "imagem", como eu poderia adicionar o upload da imagem e também cadastrá-la no bd??

 

desde já agradeço a ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

você cadastra o caminho no banco de dados e coloca a imagem em alguma pasta depois recupera só o caminho;

 

você recupera os dados da imagem upada através da função $_FILE['NOMEDAIMAGEM'];

no seu caso é:

print_r($_FILE['imagem']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

o formulário assim:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
Cadastrar nova Notícia
<form action="inserir.php" method="post" enctype="multipart/form-data">

 <table width="200" border="0" cellspacing="0" cellpadding="2">
   <tr>
     <td><div align="right">Titulo:</div></td>
     <td><input name="titulo" type="text" id="titulo"></td>
   </tr>
   <tr>
     <td><div align="right">Resumo:</div></td>
     <td><input name="Resumo" type="text" id="Resumo"></td>
   </tr>
   <tr>
     <td><div align="right">Notícia:</div></td>
     <td><textarea name="Noticia" cols="45" rows="15" id="Noticia"></textarea></td>
   </tr>
   <tr>
     <td><div align="right">Categoria:</div></td>
     <td><select name="categoria" size="1" id="categoria">
       <option value="Noticias" selected>Notícias</option>
       <option value="Esporte">Esporte</option>
       <option value="Entretenimento">Entretenimento</option>
       <option value="Turismo">Turismo</option>
       <option value="Fatos">Fatos</option>
     </select></td>
   </tr>
   <tr>
     <td><div align="right">Subcategoria:</div></td>
     <td><input name="subcategoria" type="text" id="subcategoria"></td>
   </tr>
   <tr>
     <td><div align="right">Posição:</div></td>
     <td><select name="posicao" size="1" id="posicao">
       <option value="topdestaque" selected>top-destaque</option>
       <option value="destaquecategoria">destaque-categoria</option>
       <option value="normalfoto">normal-foto</option>
     </select></td>
   </tr>
   <tr>
     <td><div align="right">Imagem:</div></td>
     <td><input name="imagem" type="file" id="imagem"></td>
   </tr>
   <tr>
     <td><div align="right">Keywords:</div></td>
     <td><input type="text" name="textfield6"></td>
   </tr>
   <tr>
     <td><div align="right">Nome:</div></td>
     <td><input type="text" name="textfield7"></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Submit"></td>
   </tr>
 </table>
</form>
</body>
</html>

e fiz a página inserir.php assim:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php require('noticiasbd.php'); ?>
<?php
$data=date('d/m/y');
$hora=date('H:i:s'); 
$imagem = $_FILES["imagem"];

// Se a imagem estiver sido selecionada
if (!empty($imagem["name"])) {

	// Largura máxima em pixels
	$largura = 1024;
	// Altura máxima em pixels
	$altura = 1024;
	// Tamanho máximo do arquivo em bytes
	$tamanho = 100000;

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

	// Pega as dimensões da imagem
	$dimensoes = getimagesize($imagem["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($imagem["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", $imagem["name"], $ext);

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

       	// Caminho de onde ficará a imagem
       	$caminho_imagem = "../img/" . $nome_imagem;

		// Faz o upload da imagem para seu respectivo caminho
		move_uploaded_file($imagem["tmp_name"], $caminho_imagem);

$sql="INSERT INTO $tabela (nome, data, hora, titulo, subtitulo, noticia, categoria, subcategoria, posicao, imagem, nome, keywords) VALUES ('$nome', '$data', '$hora', '$titulo', '$subtitulo', '$noticia', '$categoria', '$subcategoria', '$posicao', '$imagem', '$nome', '$keywords)";

$sql=mysql_query($sql)
or die ("Erro na query");
//onde string message = mensagem retorno de erro de gravaçao de dados

// Se os dados forem inseridos com sucesso
		if ($sql){
			echo "Você foi cadastrado com sucesso.";
		}
	}

	// Se houver mensagens de erro, exibe-as
	if (count($error) != 0) {
		foreach ($error as $erro) {
			echo $erro . "<br />";
		}
	}
}
?>
</body>
</html>

 

não sei onde está o erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi o que disse antes, vou tentar explicar melhor:

 

você não cadastra a imagem propriamente dita, você cadastra o caminho e repare na sua sql.

 

$sql="INSERT INTO $tabela (nome, data, hora, titulo, subtitulo, noticia, categoria, subcategoria, posicao, imagem, nome, keywords) VALUES ('$nome', '$data', '$hora', '$titulo', '$subtitulo', '$noticia', '$categoria', '$subcategoria', '$posicao', '$imagem', '$nome', '$keywords)";

agora se você voltar no seu código olhe:

$imagem = $_FILES["imagem"];

 

você esta tentando passar a imagem para o banco de dados quando deveria salvar o caminho no seu caso é a variavel $caminho_imagem

 

mais ainda recomendo que você salve o caminho completo para evitar confusão.

 

Exemplo:

 

$imagem = $_FILE['imagem'];
$nome_imagem = md5(uniqid(time())) . "." . $ext[1];
$CaminhoImgCompleto = "http://www.meusite.com.br/img/nomedaPasta/{$nome_imagem}";
$sql="INSERT INTO $tabela (nome, data, hora, titulo, subtitulo, noticia, categoria, subcategoria, posicao, imagem, nome, keywords) VALUES ('$nome', '$data', '$hora', '$titulo', '$subtitulo', '$noticia', '$categoria', '$subcategoria', '$posicao', '$CaminhoImgCompleto', '$nome', '$keywords)";

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pela sua atenção, agora ele tá apresentando o seguinte erro:

 

Notice: Undefined variable: nome_imagem in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 13

 

Notice: Undefined variable: error in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 49

 

Notice: Undefined variable: nome in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 63

 

Notice: Undefined variable: subtitulo in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 63

 

Notice: Undefined variable: noticia in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 63

 

Notice: Undefined variable: nome in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 63

 

Notice: Undefined variable: keywords in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 63

Erro na query

 

o que pode ser?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste seu código atualizando novamente que eu vou te auxiliando.

 

esses erros indicam que você não definiu as variaveis

 

exatamente isso que havia entendido, mas não consegui saber o porque disso.

 

formulario.html:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
Cadastrar nova Notícia
<form action="inserir.php" method="post" enctype="multipart/form-data">

 <table width="200" border="0" cellspacing="0" cellpadding="2">
   <tr>
     <td><div align="right">Titulo:</div></td>
     <td><input name="titulo" type="text" id="titulo"></td>
   </tr>
   <tr>
     <td><div align="right">Resumo:</div></td>
     <td><input name="Resumo" type="text" id="Resumo"></td>
   </tr>
   <tr>
     <td><div align="right">Notícia:</div></td>
     <td><textarea name="Noticia" cols="45" rows="15" id="Noticia"></textarea></td>
   </tr>
   <tr>
     <td><div align="right">Categoria:</div></td>
     <td><select name="categoria" size="1" id="categoria">
       <option value="Noticias" selected>Notícias</option>
       <option value="Esporte">Esporte</option>
       <option value="Entretenimento">Entretenimento</option>
       <option value="Turismo">Turismo</option>
       <option value="Fatos">Fatos</option>
     </select></td>
   </tr>
   <tr>
     <td><div align="right">Subcategoria:</div></td>
     <td><input name="subcategoria" type="text" id="subcategoria"></td>
   </tr>
   <tr>
     <td><div align="right">Posição:</div></td>
     <td><select name="posicao" size="1" id="posicao">
       <option value="topdestaque" selected>top-destaque</option>
       <option value="destaquecategoria">destaque-categoria</option>
       <option value="normalfoto">normal-foto</option>
     </select></td>
   </tr>
   <tr>
     <td><div align="right">Imagem:</div></td>
     <td><input name="imagem" type="file" id="imagem"></td>
   </tr>
   <tr>
     <td><div align="right">Keywords:</div></td>
     <td><input type="text" name="textfield6"></td>
   </tr>
   <tr>
     <td><div align="right">Nome:</div></td>
     <td><input type="text" name="textfield7"></td>
   </tr>
   <tr>
     <td> </td>
     <td><input type="submit" name="Submit" value="Submit"></td>
   </tr>
 </table>
</form>

 

inserir.php:

 

<?php require('noticiasbd.php'); ?>
<?php
$data=date('d/m/y');
$hora=date('H:i:s'); 
$imagem = $_FILES["imagem"];
$CaminhoImgCompleto = "http://localhost/img/{$nome_imagem}";

// Se a imagem estiver sido selecionada
if (!empty($imagem["name"])) {

	// Largura máxima em pixels
	$largura = 1024;
	// Altura máxima em pixels
	$altura = 1024;
	// Tamanho máximo do arquivo em bytes
	$tamanho = 100000;

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

	// Pega as dimensões da imagem
	$dimensoes = getimagesize($imagem["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($imagem["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", $imagem["name"], $ext);

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

       	// Caminho de onde ficará a imagem
       	$caminho_imagem = "../img/" . $nome_imagem;

		// Faz o upload da imagem para seu respectivo caminho
		move_uploaded_file($imagem["tmp_name"], $caminho_imagem);

$sql="INSERT INTO $tabela (nome, data, hora, titulo, subtitulo, noticia, categoria, subcategoria, posicao, imagem, nome, keywords) VALUES ('$nome', '$data', '$hora', '$titulo', '$subtitulo', '$noticia', '$categoria', '$subcategoria', '$posicao', '$CaminhoImgCompleto', '$nome', '$keywords)";

$sql=mysql_query($sql)
or die ("Erro na query");
//onde string message = mensagem retorno de erro de gravaçao de dados

// Se os dados forem inseridos com sucesso
		if ($sql){
			echo "Você foi cadastrado com sucesso.";
		}
	}

	// Se houver mensagens de erro, exibe-as
	if (count($error) != 0) {
		foreach ($error as $erro) {
			echo $erro . "<br />";
		}
	}
	}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por parte. você definiu o caminho completo no topo do seu code porém você só seta a variavel depois isso vai causar erro mesmo.

 

para corrigir o problema com a variavel nome_imagem coloque o variavel CaminhoImgCompleto depois do nome_img.

 

gostaria de saber qual a linha 49 para identificar esse problema:

 

Notice: Undefined variable: error in C:\Arquivos de programas\Apache Software Foundation\Apache2.2\htdocs\fb\admin\inserir.php on line 49

 

 

e os outros erros é que você não recuperou os dados do POST vocês só recuperou para imagem.

 

eu estou vendo seus inputs estão com nome como textfield7

 

sugiro que troque isso para identificar exemplo

campo nome

tenha o name = nome

campo telefone

name = telefone

campo email

name = email

 

ai no começo do seu post você comenta seu code e coloca assim

 

print_r($_POST);

e ve tudo que retorna

depois você da extract($_POST);

e vai ter as variaveis definidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

linha 49:

if (count($error) == 0) {

 

print_r($_POST);

Array ( [titulo] => asdf [Resumo] => marcos [Noticia] => fasdf asdf asdf asdf asdffsdadfsa [categoria] => Noticias [subcategoria] => economia [posicao] => topdestaque [Keywords] => casa [nome] => asdf asdfasdffsad [submit] => Submit

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta fazer assim no inicio do code poe

error = array();

 

e também de um extrac($_POST);

 

olhe se o nome da variavel que você esta recuperando tem o mesmo valor da name no input

 

creio que com essas mudanças tudo se resolva.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vaja como ficou agora meu código:

 

<?php require('noticiasbd.php'); ?>
<?php
extract($_POST);
$titulo = $_POST["titulo"];
$resumo = $_POST["resumo"];
$noticia = $_POST["noticia"];
$categoria = $_POST["categoria"];
$subcategoria = $_POST["subcategoria"];
$posicao = $_POST["posicao"];
$imagem = $_FILES["imagem"];
$data=date('d/m/y');
$hora=date('H:i:s');
$keywords = $_POST["keywords"];
$nome = $_POST["nome"];
$error = array();
// Se a imagem estiver sido selecionada
if (!empty($imagem["name"])) {

	// Largura máxima em pixels
	$largura = 1024;
	// Altura máxima em pixels
	$altura = 1024;
	// Tamanho máximo do arquivo em bytes
	$tamanho = 100000;

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

	// Pega as dimensões da imagem
	$dimensoes = getimagesize($imagem["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($imagem["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", $imagem["name"], $ext);

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

       	// Caminho de onde ficará a imagem
       	$caminho_imagem = "../img/" . $nome_imagem;

		// Faz o upload da imagem para seu respectivo caminho
		move_uploaded_file($imagem["tmp_name"], $caminho_imagem);
// chave inserida
}
$CaminhoImgCompleto = "http://localhost/img/'{$nome_imagem}'";
$sql="INSERT INTO $tabela (titulo, resumo, noticia, categoria, subcategoria, posicao, imagem, data, hora, , nome, keywords) VALUES ('$titulo', '$resumo', '$noticia', '$categoria', '$subcategoria', '$posicao',  '$CaminhoImgCompleto', '$data', '$hora', '$nome', '$keywords')";

$sql=mysql_query($sql)
or die ("Erro na query");
//onde string message = mensagem retorno de erro de gravaçao de dados

// Se os dados forem inseridos com sucesso
		if ($sql){
			echo "Você foi cadastrado com sucesso.";
		}
	}

	// Se houver mensagens de erro, exibe-as
	if (count($error) != 0) {
		foreach ($error as $erro) {
			echo $erro . "<br />";
		}
	}
?>

com suas dicas e mais um pouco de atenção consegui corrigir vários erros, mas ainda está apresentando erro: "Erro na query", tenho medo q isso seja devido a falta ou posição errado de alguma "{" ou "}", tive que inserir no meio uma chave que não sei se está na posição correta, veja no código tem um comentário "chave inserida".

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro se encontra aqui:

 

INSERT INTO $tabela

essa variavel tabela não existe ou você define ela em algum lugar ou você coloca o nome da tabela direto.

INSERT INTO usuarios // usuarios = nome da tabela no banco de dados;

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro se encontra aqui:

 

INSERT INTO $tabela

essa variavel tabela não existe ou você define ela em algum lugar ou você coloca o nome da tabela direto.

INSERT INTO usuarios // usuarios = nome da tabela no banco de dados;

 

essa variável está no arquivo noticiasbd.php que faz a conexão com o banco de dados, fiz isso pq assim quando quiser mudar algo no bd ñ preciso ficar alterando todas as páginas.

 

edit:

acabo de testar aqui e mesmo colocando o nome direto da tabela dá o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer o seguinte.

 

$query = mysql_query($sql) or die mysql_error();

 

Unica coisa que fiz foi atribuir a consulta a uma outra variavel, e ao invez de dar um echo especificando o erro, usei uma propria função do mysql para que ele me diga qual o problema caso ocorra algum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer o seguinte.

 

$query = mysql_query($sql) or die mysql_error();

 

Unica coisa que fiz foi atribuir a consulta a uma outra variavel, e ao invez de dar um echo especificando o erro, usei uma propria função do mysql para que ele me diga qual o problema caso ocorra algum.

 

o erro apresentado foi esse : Parse error: syntax error, unexpected T_STRING in C:\Inetpub\wwwroot\fb\admin\inserir.php on line 78

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro apresentado foi esse : Parse error: syntax error, unexpected T_STRING in C:\Inetpub\wwwroot\fb\admin\inserir.php on line 78

após muito quebrar a cabeça e decidir dar um tempo para esfriá-la, cheguei à conclusão de que seria melhor adicionar minhas informações ao script do tutorial e acabou dando certo a página inserir.php ficou assim:

 

<?php
// Conexão com o banco de dados
require('noticiasbd.php'); 

// Recupera os dados dos campos
$titulo = $_POST['titulo'];
$resumo = $_POST['resumo'];
$noticia = $_POST['noticia'];
$categoria = $_POST['categoria'];
$subcategoria = $_POST['subcategoria'];
$posicao = $_POST['posicao'];
$foto = $_FILES['foto'];
$data=date('d/m/y');
$hora=date('H:i:s');
$keywords = $_POST['keywords'];
$nome = $_POST['nome'];
$error = array();

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

	// Largura máxima em pixels
	$largura = 1500;
	// Altura máxima em pixels
	$altura = 1800;
	// Tamanho máximo do arquivo em bytes
	$tamanho = 10000000;

   	// Verifica se o arquivo é uma imagem
   	if(!eregi("^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 = "../img/" . $nome_imagem;

		// Faz o upload da imagem para seu respectivo caminho
		move_uploaded_file($foto["tmp_name"], $caminho_imagem);
$CaminhoImgCompleto = "http://localhost/fb/img/{$nome_imagem}";
		// Insere os dados no banco
		$sql ="INSERT INTO $tabela (titulo, resumo, noticia, categoria, subcategoria, posicao, imagem, data, hora, nome, keywords) VALUES ('$titulo', '$resumo', '$noticia', '$categoria', '$subcategoria', '$posicao', '$CaminhoImgCompleto', '$data', '$hora', '$nome', '$keywords')";
$sql= mysql_query($sql)
or die ("Erro na query");
		// Se os dados forem inseridos com sucesso
		if ($sql){
			echo "A notícia foi cadastrada com sucesso.";
		}
	}

	// Se houver mensagens de erro, exibe-as
	if (count($error) != 0) {
		foreach ($error as $erro) {
			echo $erro . "<br />";
		}
	}
}
?>

 

Segue o link para o tutorial http://rafaelcouto.com.br/upload-simples-de-imagem-com-php-mysql/

 

 

teria como condicionar a inserção da notícia ao carregamento da imagem?? pq as vezes acontece de se esqucer de selecioná-la

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.