Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 19:12

Boa noite, ja ando a algum tempo introduzir imagens na base de dados tipo avatar para corresponder a um utilizador....mas o problema é que em todos os tutoriais que vejo, a coisa ate parece facil....só que há um problema...quando tento fazer o INSERT ou UPLOAD aparece sempre um erro de que tenho passar a imagem p UMA string....coisa que eu acho que resolvi com o seguinte comando como esta aqui no codigo... :
$imagem = implode(",",$foto);

Outra coisa a imagem vai para a diretoria que eu defini...mas na hora de a fazer ver , bem como os restantes dados...a imagem nao aparece..., nao entendo como nos tutoriais ninguem poem a passagem p string e a mim esse problema aparece...

INSERIR DADOS + IMAGEM :

<?php require "ligacao_bd.php"; $erro = ''; //se clicar no botão... if(isset($_REQUEST['botao'])) { // 1º - definir as variaveis... $nome = $_POST['nome']; $email = $_POST['email']; $senha1 = $_POST['senha1']; $foto = $_FILES['foto']; AQUI FAÇO A VERIFICAÇÃO NORMAL DOS CAMPOS PREENCHIDOS(TUDO OK...) elseif($foto['name'] != "" && $foto['type'] != "image/jpeg" ) { $erro = "Isso não é uma imagem !"; } elseif($foto['name'] != "" && $foto['size'] > 50000) { $erro = "Image maior que o tamanho permitido"; } else { //caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; $imagem = implode(",",$foto); //faz o upload da imagem para o respectivo caminho... move_uploaded_file($foto["tmp_name"],$caminho_imagem); //inserir os dados na base de dados... $sql = $ligacao->query("INSERT INTO utilizadores (nome,email,senha,nivel,permissao,foto,criado) VALUES ('$nome','$email','$senha1','utilizador','nao','$imagem',NOW() )"); } } ?>

VER DADOS E IMAGEM :

<?php session_start(); require 'ligacao_bd.php'; $utilizador = $ligacao->query("SELECT * FROM utilizadores WHERE id = '".$_SESSION['id']."' "); while($mostrar = mysqli_fetch_object($utilizador)) { echo "<img src='imagens/ ".$mostrar->foto." ' /> <br>"; echo " ".$mostrar->nome." <br> "; echo " ".$mostrar->email." "; } ?>

ALGUEM ME PODE AJUDAR POR FAVOR?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:15

O nome da imagem creio que deveria pegar assim:

$imagem = $foto['name'];

Faz esse teste com a variável acima, e confirma no banco de dados se o nome da imagem foi salvo correto.

Verifica se a pasta que vai receber a imagem tem permissão "CHMOD" 777, e confirma se a imagem está realmente sendo enviada para a pasta.

A parte da exibição da foto faça o seguinte:

echo $mostrar->foto ."<br>";

Verifica o nome se está correto.

Caso não consiga posto um exemplo de insert e exibição de fotos.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:31

JAFICOU MELHOR COM AS SUAS ALTERAÇÕES....

ANTES APARECIA :

avatar_4.jpg,image/jpeg,C:wamp mpphp582B.tmp,0,37920
sofia
sofia@amor.pt

AGORA APARECE :

avatar_4.jpg
sofia
sofia@amor.pt


SO FALTA MESMO A FOTO VIR EM VEZ DE (avatar_4.jpg)..
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:33

Se a imagem foi enviada para a pasta imagens/, e só você puxar no echo

echo "<img src='imagens/ ".$mostrar->foto." ' /> <br>";

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:43

com o seguinte codigo:

while($mostrar = mysqli_fetch_object($utilizador)) { echo $mostrar->foto. "<br>"; echo "<img src='imagens/ ".$mostrar->foto." ' /> <br>"; echo $mostrar->nome. "<br> "; echo $mostrar->email ;


APARECE O SEGUINTE (visualizar screenshot em anexo):
https://onedrive.live.com/redir?resid=C ... hoto%2cGIF
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:45

nao terei que fazer algum ajuste no codigo de registo?
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:48

hiperlink da imagem correto, peço desculpa:

https://onedrive.live.com/redir?resid=C ... hoto%2cGIF
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 20:51

Já confirmou se a imagem realmente foi enviada para a pasta imagens?
As vezes o nome pode estar sendo salvo no banco de dados, mas a imagens não vai para a pasta.

Me informa o caminho do arquivo que exibe a imagem em relação a pasta imagens.
As vezes o diretório não bate corretamente.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 21:01

sim a imagem esta na pasta imagens...
DIRETORIO:

C:\wamp\www\Upload imagens\imagens

CODIGO:

//caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; $imagem = $foto['name']; //faz o upload da imagem para o respectivo caminho... move_uploaded_file($foto["tmp_name"],$caminho_imagem); //inserir os dados na base de dados... $sql = $ligacao->query("INSERT INTO utilizadores (nome,email,senha,nivel,permissao,foto,criado) VALUES ('$nome','$email','$senha1','utilizador','nao','$imagem',NOW() )");

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

29-05-2015 21:40

Pelo seu código, o código que exibe a imagem deve estar em:

localhost/Upload imagens/exibir.php

É isso mesmo?

Se o arquivo que exibe as imagens está no diretório raiz, exemplo:

http://localhost/exibir.php

E a pasta imagens está dentro de Upload imagens você tem que fazer assim:

<img src="Upload imagens/imagens/..">

Se for esse o caso, não é aconselhável também deixar espaço em nome de pastas. Substitui por underline ou traço.

Abri também esse post que pode te dar uma ideia melhor sobre o caminho até a imagem
Problema-para-exibir-imagem-enviada-par ... _9078.html
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 10:37

ja fiz essa alteração e ainda nao me aparece a imagem, contudo, garanto que ela esta na referida pasta....

sera que o codigo onde faço a inserção da imagem estara correto? :

//caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; $imagem = $foto['name']; //faz o upload da imagem para o respectivo caminho... move_uploaded_file($foto["tmp_name"],$caminho_imagem);

0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 10:48

Parece tudo certo.

A função move_uploaded_file você deve passar o nome temporário e a pasta e nome de destino em seguida, como está no seu script.

Você consegue acessar a imagem diretamente pelo link no navegador, tipo: http://..imagem.jpg ?

Se você consegue acessar, então é problema no caminho até a imagem mesmo. Se possível, coloca seu script online e informa o link.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 10:56

pus na url : http://localhost/Upload_imagens/imagem/avatar_4.jpg

...mas nao aparece a imagem..


a pasta imagens esta no endereço: C:\wamp\www\Upload_imagens\imagens


qd pretendo chamar a imagem fiz o seguinte: echo "<img src='Upload_imagens/imagens/ ".$mostrar->foto." ' />

ps:ja tirei o espaço na pasta do site agora esta assim : upload_imagens
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 11:04

Eu fiz aqui um teste baseado no seu código, no trecho do upload e não deu problema.
Faz um teste com esse código. Funcionando, só adicionar o seu bloco. Veja se não faltou algo, como o enctype no form action.

<form method="post" action="teste.php" enctype="multipart/form-data"> <input type="file" name="foto"> <input type="submit" name="botao"> </form> <?php //se clicar no botão... if(isset($_REQUEST['botao'])) { $foto = $_FILES['foto']; //caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; if(move_uploaded_file($foto["tmp_name"],$caminho_imagem)) { echo "foto enviada"; } else { echo "erro"; } } ?>

1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 11:11

adicionei o trecho de codigo como me disse o que pode conferir em baixo e deu erro! ps: o form tem o enctype.....

tenho o codigo assim:

else { //caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; $imagem = $foto['name']; //faz o upload da imagem para o respectivo caminho... move_uploaded_file($foto["tmp_name"],$caminho_imagem); if(move_uploaded_file($foto["tmp_name"],$caminho_imagem)) { echo "foto enviada"; } else { echo "erro"; } //inserir os dados na base de dados... $sql = $ligacao->query("INSERT INTO utilizadores (nome,email,senha,nivel,permissao,foto,criado) VALUES ('$nome','$email','$senha1','utilizador','nao','$imagem',NOW() )"); //$erro = "Imagem inserida"; } }

0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 11:12

mas garanto-lhe que antes a foto alem de estar na bd, tb estava na referida pasta..... eu abria pasta e encontrei ela lá...
0
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 11:17

hiperlink da pasta com ficheiros para poder conferir:

https://onedrive.live.com/redir?resid=C ... lder%2cphp
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

30-05-2015 13:08

Eu testei seu código. O que acho que pode ser é o seguinte:

Ao invés de usar:

$foto = $_FILES['foto'];

Usa o $_FILES correspondente.

Por exemplo, no trecho da foto usa:

$caminho_imagem = "imagens/" .$_FILES["foto"]['name']; if(move_uploaded_file($_FILES["foto"]["tmp_name"],$caminho_imagem)) { ..

Tem que fazer isso em todos os $_FILES

Tem um post seu mais acima que você falou que chama a imagem assim:
http://localhost/Upload_imagens/imagem/avatar_4.jpg

Só que a pasta que definiu é imagens. Verifica se não é isso também.
1
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 198
Sexo: Masculino

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA

31-05-2015 21:23

WEB , encontrei o galho!!!
o problema estava somente no espaço entre a barra/ e as aspas como eu tinha no meu codigo,como mostro no exemplo em baixo !!! :

echo "<img src='imagens/ ".$mostrar->foto."' alt='foto de perfil' title='foto de perfil' /> <br>";

resolvi, tirando esse espaço e deixar tudo seguido, como mostro em baixo :

echo "<img src='imagens/".$mostrar->foto."' alt='foto de perfil' title='foto de perfil' /> <br>";

quanto ao resto estava tudo bem como mostro no meu codigo em baixo:

else { //caminho onde ficara a imagem... $caminho_imagem = "imagens/" .$foto['name']; $imagem = $foto['name']; //faz o upload da imagem para o respectivo caminho... move_uploaded_file($foto["tmp_name"],$caminho_imagem);

DEIXO ESTE EXEMPLO PARA VOCÊ PODER AJUDAR MAIS RAPIDO E FACILMENTE ALGUÉM COM ESTE PROBLEMA, MUITO OBRIGADO PELA SUA PACIÊNCIA!!!
1
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17521
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: INSERIR IMAGEM NA BASE DE DADOS E DEPOIS MOSTRA-LA  #resolvido

31-05-2015 21:59

Realmente não tinha percebido esse espaço. :!:
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado