M@rc 1 Denunciar post Postado Agosto 19, 2013 Boa noite, Tenho uma tabela no mysql com as colunas nome, senha e foto. Ao exibir através do php, o nome e senha do usuário aparece corretamente mas a foto aparece como caracteres. O que faço para a imagem aparecer corretamente? Segue código: <?php require 'conexao.php'; $resultado = mysql_query("select * from usuarios "); header("Content type: image/.jpg"); while ($row = mysql_fetch_array($resultado)) { $foto = $row['foto']; $nome = $row['nome']; $senha = $row['senha']; echo "$foto </br >"; echo "$nome </br >"; echo "$senha </br >"; } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Primeiro você precisa criar um arquivo PHP só para renderizar a imagem, exemplo: imagem.php <?php require 'conexao.php'; $id_usuario = (int) $_GET['id_usuario']; $sql = 'SELECT foto FROM usuarios WHERE id_usuario = ' . $id_usuario; $query = mysql_query($sql) or die(mysql_error()); $foto = mysql_result($query, 0); header('Content-Type: image/jpeg'); echo $foto; Depois você chama o arquivo assim: echo '<img src="imagem.php?id_usuario=' . $row['id_usuario'] . '" alt="" /><br />'; Qualquer dúvida é só postar. :) Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Não deu certo. Não aparece mais nada. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 O campo ID da tabela "usuarios" é id_usuario mesmo? Se não for altere o exemplo que eu passei com o campo correto. Outra coisa, remova esta linha do código onde lista os dados do usuário: header("Content type: image/.jpg"); Esta linha além de estar com as instruções erradas, o mime type da imagem deve estar no arquivo que vai renderizar a imagem. Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Sim, é id_usuario mesmo. Em um dos arquivos coloquei: <?php require 'conexao.php'; $resultado = mysql_query("select * from usuarios "); header("Content type: image/.jpg"); while ($row = mysql_fetch_array($resultado)) { $nome = $row['nome']; $senha = $row['senha']; echo '<img src="imagem.php?id_usuario=' . $row['id_usuario'] . '" alt="" /><br />'; echo "$nome </br >"; echo "$senha </br >"; } ?> e no outro: <?php require 'conexao.php'; $id_usuario = (int) $_GET['id_usuario']; $sql = 'SELECT foto FROM usuarios WHERE id_usuario = ' . $id_usuario; $query = mysql_query($sql) or die(mysql_error()); $foto = mysql_result($query, 0); header('Content-Type: image/jpeg'); echo $foto; ?> Ao chamar o primeiro aparece o nome, a senha do usuario e um pequeno quadrado como se não tivesse encontrado a imagem. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 No primeiro arquivo remova esta linha: header("Content type: image/.jpg"); Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Removi, mesma coisa Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Você está salvando a imagem no banco em binário ou com base64? Se tiver em base64 você precisa fazer assim: echo base64_decode($foto); Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Onde vejo se está como binario ou base64? (Estou começando com php e mysql) Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Se continuar dando erro faça o seguinte, comente a linha com o header para podermos ver se está sendo exibido algum erro: //header('Content-Type: image/jpeg'); Depois acesse o arquivo direto no browser para ver se aparece algum erro, por exemplo: http://localhost/imagem.php?id_usuario=1 Onde vejo se está como binario ou base64? (Estou começando com php e mysql)Copie um trecho do código da imagem e cole aqui que eu vejo se está em binário. Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Aparece objeto não encontrado erro 404. Estou usando o phpmyadmin e no local onde escolho a foto aparece como "Binário - não edite (219.3 KB)" creio que então esta salvando como binário. O tipo coloquei como longblob Para acessar o arquivo estou usando: http://localhost/mysql/exibe.php e aparece como disse, somente texto sem as imagens. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Se está dando erro 404 é porque você está acessando o URL errado. Verifique onde você salvou o arquivo imagem.php, se estiver na mesma pasta do arquivo exibe.php o URL é: http://localhost/mysql/imagem.php?id_usuario=1 No lugar do número 1 coloque um ID que exista na tabela "usuarios" para testar. Poste aqui o que retorna ao acessar este URL. Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 O nome do arquivo 1 é exibe.php e o 2 é o exibe2.php e o id do primeiro usuario é 5 Coloquei: http://localhost/mysql/exibe.php?id_usuario=5 Aparece primeiro o nome e senha e depois aparece os quadrados de como se não tivesse encontrado a imagem. Arquivo exibe.php <?php require 'conexao.php'; $resultado = mysql_query("select * from usuarios "); while ($row = mysql_fetch_array($resultado)) { $nome = $row['nome']; $senha = $row['senha']; echo '<img src="exibe.php?id_usuario=' . $row['id_usuario'] . '" alt="" /><br />'; echo "$nome </br >"; echo "$senha </br >"; } ?> exibe2: <?php require 'conexao.php'; $id_usuario = (int) $_GET['id_usuario']; $sql = 'SELECT foto FROM usuarios WHERE id_usuario = ' . $id_usuario; $query = mysql_query($sql) or die(mysql_error()); $foto = mysql_result($query, 0); header('Content-Type: image/jpeg'); echo($foto); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 O arquivo que renderiza a imagem é o segundo, o URL é: http://localhost/mysql/exibe2.php?id_usuario=5 Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Tentei o segundo tb mas ai so aparece o quadradinho onde deveria aparecer a imagem mas não aparece e nem aparece mais o nome de usuario e senha. No exibe.php aparece o nome de usuario e senha mas a imagem não carrega. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Você comentou a linha com o header como eu falei no post #10? Se você não comentar esta linha o navegador não exibe o erro, pois trata o arquivo como uma imagem. Coloque duas barras na frente dela pra gente pode ver se está aparecendo algum erro. Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Comentei agora mas não dá nenhum erro. Continua exibindo o nome do usuario, a senha e não carrega a imagem. Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Mas o segundo arquivo é só pra renderizar a imagem, não é pra exibir nome e senha. Compartilhar este post Link para o post Compartilhar em outros sites
M@rc 1 Denunciar post Postado Agosto 20, 2013 Um print da tela pra ver se ajuda: https://docs.google.com/file/d/0B-A6QRqdIHcxeFFhbWtaMVJDM1E/edit?usp=sharing Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 20, 2013 Amigo, eu acho que você não entendeu o que eu to pedindo pra você fazer. Eu entendi que a imagem está com erro, por isso pedi pra você comentar a linha com o "header" e acessar diretamente o arquivo que renderiza a imagem pra gente ver se aparece algum erro. Você está acessando o primeiro arquivo e não o arquivo da imagem. Esquece um pouco o primeiro arquivo e vamos tentar descobrir qual erro está ocorrendo ao tentar renderizar a imagem. Acesse o URL do arquivo exibe2.php, pelo URL que eu postei no post #14 e veja o que é exibido. Se aparecer um quadrado de imagem com erro é porque você não comentou a linha com o "header". Compartilhar este post Link para o post Compartilhar em outros sites