Ir para conteúdo
Fórum Script Brasil
  • 0

Exibir arquivo PNG/JPG apenas quando o usuário estiver logado no sistema.


John Mitysumy

Pergunta

Alguém pode me ajudar com um projeto? Tenho um sistema onde os usuários podem ver algumas imagens dentro do sistema, porem eles só podem ver as imagens quando estiver logado, porem se eles pegam o link da imagem e cola no navegador, mesmo não logado eles conseguem acessar a imagem. tentei fazer uma validação usando o arquivo .htaccess e um valida.php, ele faz a validação, se o usuário não está logado ele dá uma mensagem ou pode redirecionar para outra página. Porem se ele estiver logado, não mostra nem uma imagem com essa validação. Segue o código;

image.png.3a069f4762e6252d22d01f1dff450aeb.png

image.png.3358126b995c405c33f22248da58fb33.png

Se alguém pode me ajudar, vai me salvar muito.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Coloque as imagens numa pasta fora do acesso público.
Crie um arquivo .php que leia e entregue o conteúdo dessas imagens, somente e apenas se tal user estiver logado.

Use a rota desse arquivo onde precisar da imagem:
ex.: <img src='rota/para/seu-carregador-de-imagens/id-da-imagem' />

Dessa forma, mesmo que alguém tente acessar a rota/para/seu-carregador-de-imagens/id-da-imagem e não estiver logado, não verá a imagem.

Link para o comentário
Compartilhar em outros sites

  • 0

Exatamente por isso que se faz necessário carregar o conteúdo dessas imagens via .php
perceba que a rota que vai entregar a imagem, não possui extensão:
 

1 hora atrás, lowys disse:

ex.: <img src='rota/para/seu-carregador-de-imagens/id-da-imagem' />

 

Link para o comentário
Compartilhar em outros sites

  • 0

Se ainda não fui claro o suficiente, assim q eu tiver uma folga aqui no trabalho, te escrevo uma sugestão.
Ou se quiser ir trocando idéias rápidas aqui, vá postando o que consguiu fazer, que a gente segue te orientando.

1) leia o conteúdo do arquivo de imagem usando um arquivo .php
2) neste mesmo php, entregue a imagem. Com cabeçalho de imagem e tudo.
3) não exponha seu arquivo .php na url

Link para o comentário
Compartilhar em outros sites

  • 0
30 minutos atrás, John Mitysumy disse:

de qual quer forma, o que eu não queria, é que o usuário pegasse o link da imagem e abrisse ela sem está logado

Ah tá!
Isso se resolve facilmente assim:
 

2 horas atrás, lowys disse:

Coloque as imagens numa pasta fora do acesso público.
Crie um arquivo .php que leia e entregue o conteúdo dessas imagens, somente e apenas se tal user estiver logado.

Use a rota desse arquivo onde precisar da imagem:
ex.: <img src='rota/para/seu-carregador-de-imagens/id-da-imagem' />

Dessa forma, mesmo que alguém tente acessar a rota/para/seu-carregador-de-imagens/id-da-imagem e não estiver logado, não verá a imagem.

Veja essa forma de ler conteúdo de arquivos de imagem como .php
tente reproduzir alguma dessas respostas aí:
https://stackoverflow.com/questions/10034255/how-to-read-an-image-with-php

Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0

Consegui usar esse código;

image.png.fa6d0c2a106197b69fb8b8dd55504eed.png

ele abre a imagem e fica da forma que gostaria, não deixando o usuário ver o caminho, o caminho em si é a variável que eu adicionar. Porem quando dou include na página que preciso exibir esta imagem, apresenta um monte de codigo doido na página e não a imagem.

Link para o comentário
Compartilhar em outros sites

  • 0

faça assim:
<img src='endereco/do-seu/arquivo.php'>

lembrando que é o endereço do seu arquivo.php que tem o header image

Se quiser fazer de forma mais intelegente, use nginx ou .htacces no apache e faça assim:

6 horas atrás, lowys disse:

Use a rota desse arquivo onde precisar da imagem:
ex.: <img src='rota/para/seu-carregador-de-imagens/id-da-imagem' />

Dessa forma, seu arquivo .php não fica exposto na url que retorna imagens

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...