Ir para conteúdo

POWERED BY:

Arquivado

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

Landerson Almeida

Php Não cadastra nome da imagem no Banco de Dados

Recommended Posts

Olá estou tentando fazer o Upload de imagem com redirecionamento e cadastro no BD mais nao estou conseguindo :(

<?php //inicia o script PHP
 
//configuração de banco - ABAIXO -
$host = "localhost"; //host
$user = "root"; //usuário do bd
$pass = ""; //senha do bd
$banco = "test"; //nome do banco de dados
 
$conexao = mysql_connect($host, $user, $pass) or die ("falha ao conectar no servidor de banco de dados"); //or die - serve para se nao conectar ao bd ele manda a mensagem de erro

mysql_select_db($banco, $conexao); //query de seleção de banco de dados

$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$usuario = $_POST['usuario'];
$email = $_POST['email'];
$senha = $_POST['senha'];
if(isset($_FILES['foto'])){	
	$foto = $_FILES['foto'];
}
$ativado = "1";

$codificado = md5($senha);

//Aqui eu faco a consulta antes de inserir
$query_verifica = "SELECT * FROM  usuarios WHERE usuario = '".$email."' OR email = '".$usuario."'";
$result = mysql_query($query_verifica, $conexao);

if(mysql_num_rows($result) > 0){
    echo "<div class='form2' style='color:#000;'>Email ou Nome de usuario em Uso Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>"; //aparece se cadastro direito
}else{}
if(!isset($_POST['nome']) || ($_POST['nome']=="")){
echo "<div class='form2'>O Campo Nome esta Vazio,preencha Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>";
}else{

	// Se a foto estiver sido selecionada
	if (!empty($foto["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 = "fotos/" . $nome_imagem;
 
			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);

		}
 
		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "
";
			}
		}
	}
$query = "INSERT INTO usuarios (nome,sobrenome,usuario,email,nome_imagem,senha,ativado) VALUES ('".$nome."', '".$sobrenome."', '".$usuario."', '".$email."', '".$nome_imagem."', '".$codificado."', '".$ativado."')"; //insere na tabela usuarios os valores 'nome usuario senha e classe'

if(mysql_query($query, $conexao)) //ve se da falha ao cadastrar os login
{
	echo "<div class='form2'>Cadastro efetuado com sucesso Seus dados <p>Nome Completo: $nome $sobrenome</p> Login: $usuario <p>Faça <a href='http://www.google.com'>Login</a></div>"; //aparece se cadastro direito
}
else
{
	echo "<div class='form2'>Falha ao Efetuar o Cadastro</div>"; //aparece se deu M
}
}
 
?> 
<html>
<head>
<link rel="stylesheet" type="text/css" href="../styles/style.css" />
</head>

Por Favor alguem me ajuda ? :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Altere a linha

if (!empty($foto["foto"])) {

Para

if (!empty($_FILES['foto'])) {

 

 

Retire a linha

// Verifica se o arquivo é uma imagem

if(!preg_match("/^image/(pjpeg|jpeg|png|gif|bmp)$/", $foto["type"])){

E ADICIONE

// Verifica se o arquivo é uma imagem

$ext = array_reverse(explode(".", $_FILES['foto']["name"]))[0];
if(!preg_match("/^pjpeg|jpeg|jpg|png|gif|bmp$/", $ext)){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Continuou a Notice na Linha 96

<?php //inicia o script PHP
 
//configuração de banco - ABAIXO -
$host = "localhost"; //host
$user = "root"; //usuário do bd
$pass = ""; //senha do bd
$banco = "test"; //nome do banco de dados
 
$conexao = mysql_connect($host, $user, $pass) or die ("falha ao conectar no servidor de banco de dados"); //or die - serve para se nao conectar ao bd ele manda a mensagem de erro

mysql_select_db($banco, $conexao); //query de seleção de banco de dados

$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$usuario = $_POST['usuario'];
$email = $_POST['email'];
$senha = $_POST['senha'];
if(isset($_FILES['foto'])){	
	$foto = $_FILES['foto'];
}
$ativado = "1";

$codificado = md5($senha);

//Aqui eu faco a consulta antes de inserir
$query_verifica = "SELECT * FROM  usuarios WHERE usuario = '".$email."' OR email = '".$usuario."'";
$result = mysql_query($query_verifica, $conexao);

if(mysql_num_rows($result) > 0){
    echo "<div class='form2' style='color:#000;'>Email ou Nome de usuario em Uso Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>"; //aparece se cadastro direito
}else{}
if(!isset($_POST['nome']) || ($_POST['nome']=="")){
echo "<div class='form2'>O Campo Nome esta Vazio,preencha Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>";
}else{

	// 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
    	$ext = array_reverse(explode(".", $_FILES['foto']["name"]))[0];
if(!preg_match("/^pjpeg|jpeg|jpg|png|gif|bmp$/", $ext)){
     	   $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 = "fotos/" . $nome_imagem;
			$nome_imagem = $nome_imagem;
 
			// Faz o upload da imagem para seu respectivo caminho
			move_uploaded_file($foto["tmp_name"], $caminho_imagem);

		}
 
		// Se houver mensagens de erro, exibe-as
		if (count($error) != 0) {
			foreach ($error as $erro) {
				echo $erro . "
";
			}
		}
	}
$query = "INSERT INTO usuarios (nome,sobrenome,usuario,email,nome_imagem,senha,ativado) VALUES ('".$nome."', '".$sobrenome."', '".$usuario."', '".$email."', '".$nome_imagem."', '".$codificado."', '".$ativado."')"; //insere na tabela usuarios os valores 'nome usuario senha e classe'

if(mysql_query($query, $conexao)) //ve se da falha ao cadastrar os login
{
	echo "<div class='form2'>Cadastro efetuado com sucesso Seus dados <p>Nome Completo: $nome $sobrenome</p> Login: $usuario <p>Faça <a href='http://www.google.com'>Login</a></div>"; //aparece se cadastro direito
}
else
{
	echo "<div class='form2'>Falha ao Efetuar o Cadastro</div>"; //aparece se deu M
}
}
 
?> 
<html>
<head>
<link rel="stylesheet" type="text/css" href="../styles/style.css" />
</head>

Notice: Undefined variable: nome_imagem in C:\wamp\www\painel\clientes\valida_usuario.php on line 96

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dessa vez você enviou uma imagem pelo formulário?

 

Adicione a variável abaixo abaixo das variáveis onde você recebe os campos do formulário via post. Porque se você não enviar a imagem no formulário essa variável não vai existir no código, já que ela só vai receber algo se a imagem existir.

 

 

$nome_imagem = "";



Ve agora...

 

 

 

<?php //inicia o script PHP
//configuração de banco - ABAIXO -
$host = "localhost"; //host
$user = "root"; //usuário do bd
$pass = ""; //senha do bd
$banco = "test"; //nome do banco de dados
$conexao = mysql_connect($host, $user, $pass) or die ("falha ao conectar no servidor de banco de dados"); //or die - serve para se nao conectar ao bd ele manda a mensagem de erro
mysql_select_db($banco, $conexao); //query de seleção de banco de dados
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$usuario = $_POST['usuario'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$nome_imagem = "";
if(isset($_FILES['foto'])){
$foto = $_FILES['foto'];
}
$ativado = "1";
$codificado = md5($senha);
//Aqui eu faco a consulta antes de inserir
$query_verifica = "SELECT * FROM usuarios WHERE usuario = '".$email."' OR email = '".$usuario."'";
$result = mysql_query($query_verifica, $conexao);
if(mysql_num_rows($result) > 0){
echo "<div class='form2' style='color:#000;'>Email ou Nome de usuario em Uso Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>"; //aparece se cadastro direito
}else{}
if(!isset($_POST['nome']) || ($_POST['nome']=="")){
echo "<div class='form2'>O Campo Nome esta Vazio,preencha Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>";
}else{
// 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
$ext = array_reverse(explode(".", $_FILES['foto']["name"]))[0];
if(!preg_match("/^pjpeg|jpeg|jpg|png|gif|bmp$/", $ext)){
$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 = "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){
$query = "INSERT INTO usuarios (nome,sobrenome,usuario,email,nome_imagem,senha,ativado)
VALUES ('".$nome."', '".$sobrenome."', '".$usuario."', '".$email."', '".$nome_imagem."', '".$codificado."', '".$ativado."')"; //insere na tabela usuarios os valores 'nome usuario senha e classe'
if(mysql_query($query, $conexao)){
echo "<div class='form2'>Cadastro efetuado com sucesso Seus dados <p>Nome Completo: $nome $sobrenome</p> Login: $usuario <p>Faça <a href='http://www.google.com'>Login</a></div>"; //aparece se cadastro direito
}else{
echo "<div class='form2'>Falha ao Efetuar o Cadastro</div>"; //aparece se deu M
}
}else{
foreach ($error as $erro) {
echo $erro."";
}
}
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../styles/style.css" />
</head>


E adiciona $error = array(); abaixo de $nome_imagem = "";

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variável sem valor deve estar lá em cima, no mesmo bloco onde você recebe os campos vis POST do formulário. Porque somente se não existir imagem ela continuará vazia no decorrer do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz isso ainda nao adiantou tem como vc me passar o codigo corrigido ?

o Meu formulario:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../styles/style.css" />
<title>Formulário Cadastro</title>
</head>
<body>
<center><div class="logo"><img width="300" height="150" src="http://imageshack.us/a/img811/851/eeel.png"/></div></center>
<div class="form2">
<form action="../clientes/valida_usuario.php" method="post">
 
	Nome:
	<p><input type="text" name="nome" /></p>
    Sobrenome:
	<p><input type="text" name="sobrenome" /></p>
	Usuario:
	<p><input type="text" name="usuario" /></p>
	Email:
	<p><input type="text" name="email" /></p>
	Senha:
	<p><input type="password" name="senha" /></p>
	
<table>

Data de nascimento:
<td style="padding-bottom:10px;">
<select name="dia" id="dia" class="selct" style="width:80px;">
<option>Dia</option>
<?php
for($i=1; $i<=31; $i++){
	echo "
<option value='$i'>$i</option>";
}
?>
</select>
	<select name="mes" id="mes" class="selct" style="width:150px;">
	<option>Mes</option>
	<option value="Janeiro">Janeiro</option>
	<option value="Fevereiro">Fevereiro</option>
	<option value="Março">Março</option>
	<option value="Abril">Abril</option>
	<option value="Maio">Maio</option>
	<option value="Junho">Junho</option>
	<option value="Julho">Julho</option>
	<option value="Agosto">Agosto</option>
	<option value="Setembro">Setembro</option>
	<option value="Outubro">Outubro</option>
	<option value="Novembro">Novembro</option>
	<option value="Dezembro">Dezembro</option>
</select>
<select name="ano" id="ano" class="selct" style="width:80px;">
<option>Ano</option>
<?php
$year = date("Y");

while ($year > 1899) {  
echo '<option value="'.$year.'">'.$year.'</option>
';
$year = $year - '1';
}
?>
</select>

</table>
	
	Foto de Perfil<span style="font-size:10px;">(150x180) - 2MB</span>:
	<p><input type="file" name="foto" /></p>
<center><input style="margin-top:10px;box-shadow: 1px 0px 5px #444;" type="submit" value="Cadastar" /></center>

</form>
</div>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código PHP

 

 

<?php //inicia o script PHP
//configuração de banco - ABAIXO -
$host = "localhost"; //host
$user = "root"; //usuário do bd
$pass = ""; //senha do bd
$banco = "test"; //nome do banco de dados
$conexao = mysql_connect($host, $user, $pass) or die ("falha ao conectar no servidor de banco de dados"); //or die - serve para se nao conectar ao bd ele manda a mensagem de erro
mysql_select_db($banco, $conexao); //query de seleção de banco de dados
$nome = $_POST['nome'];
$sobrenome = $_POST['sobrenome'];
$usuario = $_POST['usuario'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$nome_imagem = "";
$error = array();
if(isset($_FILES['foto'])){
$foto = $_FILES['foto'];
}
$ativado = "1";
$codificado = md5($senha);
//Aqui eu faco a consulta antes de inserir
$query_verifica = "SELECT * FROM usuarios WHERE usuario = '".$email."' OR email = '".$usuario."'";
$result = mysql_query($query_verifica, $conexao);
if(mysql_num_rows($result) > 0){
echo "<div class='form2' style='color:#000;'>Email ou Nome de usuario em Uso Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>"; //aparece se cadastro direito
}else{}
if(!isset($_POST['nome']) || ($_POST['nome']=="")){
echo "<div class='form2'>O Campo Nome esta Vazio,preencha Clique <a href=\"javascript:history.go(-1)\">Aqui</a></div>";
}else{
// 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
$ext = array_reverse(explode(".", $_FILES['foto']["name"]))[0];
if(!preg_match("/^pjpeg|jpeg|jpg|png|gif|bmp$/", $ext)){
$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 = "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){
$query = "INSERT INTO usuarios (nome,sobrenome,usuario,email,nome_imagem,senha,ativado)
VALUES ('".$nome."', '".$sobrenome."', '".$usuario."', '".$email."', '".$nome_imagem."', '".$codificado."', '".$ativado."')"; //insere na tabela usuarios os valores 'nome usuario senha e classe'
if(mysql_query($query, $conexao)){
echo "<div class='form2'>Cadastro efetuado com sucesso Seus dados <p>Nome Completo: $nome $sobrenome</p> Login: $usuario <p>Faça <a href='http://www.google.com'>Login</a></div>"; //aparece se cadastro direito
}else{
echo "<div class='form2'>Falha ao Efetuar o Cadastro</div>"; //aparece se deu M
}
}else{
foreach ($error as $erro) {
echo $erro."";
}
}
}
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../styles/style.css" />
</head>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E no HTML na linha do form você deve adicionar enctype="multipart/form-data" para poder enviar a imagem, se não nunca vai.

 

 

<form action="../clientes/valida_usuario.php" method="post" enctype="multipart/form-data">

Compartilhar este post


Link para o post
Compartilhar em outros sites

RESOLVIDO!!

 

 

Estou tentando exibir a foto do Usuario no Meu Painel dessa forma

 

<?php$sql = mysql_query("SELECT * FROM usuarios ORDER BY nome");while ($nome = mysql_fetch_object($sql)) {	// Exibimos a foto	echo "<img width='100' height='100' src='clientes/fotos/". $_SESSION['nome_imagem'] ."' alt='Foto de exibição' /><br />";} ?>

Mais esta dando "Notice: Undefined index: nome_imagem in C:\wamp\www\painel\painel.php on line 25"

Sendo que a variavel nome_imagem esta no valida_usuario.php e quero exibir a foto no meu painel ja pesquisei e não achei como fasso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deve ficar assim.

 

echo "<img width='100' height='100' src='clientes/fotos/".$nome->CAMPO_DA_TABELA_QUE_ARMAZENA_O_CAMINHO_DA_FOTO."' alt='Foto de exibição' /><br />";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Óbvio que vai exibir a foto de todo mundo, você não setou nenhum WHERE especificando qual é o usuário que você quer...

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.