Ir para conteúdo

POWERED BY:

Arquivado

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

WBS DIGITAL

[Resolvido] Cadastrar no banco de dados sem img

Recommended Posts

Com muita dificuldade, conseguir fazer esse sistema de Mural com banco de dados e fotos, o problema é q pode ser q alguém não queira colocar imagem, então, recorro a vocês para me orientar quanto ao que fazer.

Como fazer nesses codigos abaixo com que a pessoa mande ou não a foto, pois como está só funciona mandando a foto, se não mandar dá erro;

 

Formulário de cadastro:

<form action="?pagina=inserir2&tabela=mural" method="post" enctype="multipart/form-data">
 Seu nome
 : <br />
 <input type="text" name="de" id="de" />
 <br /><br />
 Cidade/Estado: <br />
 <input type="text" name="cidade" id="cidade" class="inputR" />
 <br /><br />
 Para:  <br />
 <input type="text" name="para" id="para" class="inputR" />
 <br /><br />
 Mensagem: <br />
 <textarea name="mensagem" rows="9" class="inputR2"></textarea>
<br /><br />
 Sua Foto: <br />
 <input name="foto" type="file" id="foto" class="inputR"/>
 <br /><br />
  <input type="submit" value="Enviar Recado"/>
</form>

 

 

Script q grava no banco de dados

/*CADASTRO MURAL*/
case mural:
/* caso seja mural */
$foto = $_FILES['foto']['name'];
/* Recebendo o nome do arquivo enviado pelo input foto */
$tmp_foto = $_FILES['foto']['tmp_name'];
/* armazenando o arquivo em um local temporário na memória ram */
$num = rand(0, 9999999999);
/* Neste ponto ele vai criar um numero aleatório de 10 dígitos, entre 00000000000 à 9999999999 para criar o nome do arquivo, ou neste caso da foto*/
$diferencia = $num . "-";
/* Nesta linha criamos o $diferencia, ele é responsável por concatenar o random com um separador, escolhi o "-" como separador. */
$local_foto_serv = "mural/" . $diferencia . $foto;
$foto_serv = $diferencia . $foto;
if (move_uploaded_file($tmp_foto, $local_foto_serv))
/* aqui verifica se a foto subiu pro servidor */
{
$sql = "insert into mural (de, cidade, para, foto, mensagem) VALUES('$de', '$cidade', '$para', '$foto_serv', '$mensagem')";
}
break; /* fim do caso $tabela = agenda */
/*FIM CADASTRO MURAL*/

Obs.: Com esse código eu uso para todos os formulários de cadastros de, por exemplo, notícias, agenda, etc, como está aí é só um pedaço dele, onde cadastra o mural.

 

Desde já agradeço àqueles q sempre dão aquela força.

Compartilhar este post


Link para o post
Compartilhar em outros sites

se não for enviado um arquivo, $foto['name'] será vazio. Basta fazer um if para verificar se esse valor é vazio. Se for, insere sem foto. Caso contrário insere com foto

 

 

Seria assim então?

 

/*CADASTRO MURAL*/
case mural:
/* caso seja mural */
if(isset($_FILES['foto']['name'])){
$foto = $_FILES['foto']['name'];
/* Recebendo o nome do arquivo enviado pelo input foto */
$tmp_foto = $_FILES['foto']['tmp_name'];


/* armazenando o arquivo em um local temporário na memória ram */
$num = rand(0, 9999999999);
/* Neste ponto ele vai criar um numero aleatório de 10 dígitos, entre 00000000000 à 9999999999 para criar o nome do arquivo, ou neste caso da foto*/
$diferencia = $num . "-";
/* Nesta linha criamos o $diferencia, ele é responsável por concatenar o random com um separador, escolhi o "-" como separador. */
$local_foto_serv = "mural/" . $diferencia . $foto;
$foto_serv = $diferencia . $foto;
if (move_uploaded_file($tmp_foto, $local_foto_serv))
/* aqui verifica se a foto subiu pro servidor */
{
$sql = "insert into mural (de, cidade, para, foto, mensagem) VALUES('$de', '$cidade', '$para', '$foto_serv', '$mensagem')";
}

}else{
$sql = "insert into mural (de, cidade, para, mensagem) VALUES('$de', '$cidade', '$para','$mensagem')";
}
break; /* fim do caso $tabela = agenda */
/*FIM CADASTRO MURAL*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

se não me engano, $_FILES['foto']['name'] vai sempre existir. O que você tem que testar é se ele é vazio. A função isset() só testa se a variável existe. Você precisa verificar se ela não é vazia. Use empty()

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só fazer um if antes de tudo.

 

if($_FILES['foto']['size']>0)

caso for verdadeira você faz as operações com a imagem senão você vai passar nada para a variavel foto.

 

ai entra em outro detalhe verificar se no BD pode receber NULL ou terá que passar alguma coisa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só fazer um if antes de tudo.

 

if($_FILES['foto']['size']>0)

caso for verdadeira você faz as operações com a imagem senão você vai passar nada para a variavel foto.

 

ai entra em outro detalhe verificar se no BD pode receber NULL ou terá que passar alguma coisa?

 

 

Agradeço a todos os que me ajudaram, em especial, ao amigo Caio Rodrigues, com uma simples linha de código ele resolveu meu problema, fico muito agradecido e se alguém precisar de algo em design (html + css), conte comigo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a todos os que me ajudaram, em especial, ao amigo Caio Rodrigues, com uma simples linha de código ele resolveu meu problema, fico muito agradecido e se alguém precisar de algo em design (html + css), conte comigo.

Valew Precisando estamos por aqui.

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.