Ir para conteúdo

POWERED BY:

Arquivado

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

Diego Macêdo

[Resolvido] Restringir acesso direto a uma página

Recommended Posts

Amigos, estou fazendo em um site aquele velho modo de menu que passa a action com o nome ou código da página e então ele dá o include na página. Até aí, isso não é muita novidade.

 

Agora eu gostaria de botar uma 'proteção' nas páginas que serão incluídas, para evitar o acesso direto.

 

Suponha que o link para a página seja: http://www.meusiteaqui.com.br/index.php?pag=home (incluiria a página 'home.php'), mas caso o visitante queira botar o seguinte endereço http://www.meusiteaqui.com.br/home.php , ele receberia um aviso de que não é possível acessar esta página diretamente.

 

Alguém poderia me dar uma solução para isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quase resolveu...

 

Se eu tentar acessar diretamente, realmente ele redireciona a página para a página de erro, mas se eu acessar pelo site normalmente, ele dá erro quanto ao header que já foi especificado e não pode ser re-declarado.

 

Warning: Cannot modify header information - headers already sent by (output started at /public_html/index.php:11) in /public_html/sobre.php on line 3

 

sobre.php

<?php
if(basename(__file__) == 'sobre.php'){
	header('Location: erro.php');
}
...
TEXTO SIMPLES EM HTML
...
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, um sistema de login te ajudaria???

 

Assim ele só da permissão a pessoa que tem usuário e senha...Não sei se é muito bem isso que você procura. Mas creio que é uma das melhores formas de proteger suas páginas.

 

Prescisando estamos ai!

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas, não me ajuda não, porque são páginas "livres" do site, onde estou só querendo limitar o acesso através do menu do site. Ou seja, os usuários só irão conseguir ver o conteúdo das páginas do site, se clicarem através do menu. Se tentarem acesso direto ao arquivo, eles não conseguirão.

 

Abs pra você! =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Diego, sei como é fazer um menu bacana e ninguem utilizar ele..hehehe

Todo mundo acessando direto pela url.

 

Não sou expert em programação estou começando agora, mas talez você possa atribuir um valor para uma determinada página e passar esse valor para página de acesso e depois verificar se esse valor foi recebido.

 

Creio que tem soluções melhores, mas pode ser que essa seja possível...é apenas uma idea (desculpem se estou falando algo errado).

 

Vou ver se acho algo que possa lhe ajudar, encontrando posto aqui.

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é já o que se está sendo feito praticamente. O problema está sendo o redirecionamento.

 

Mas eu pensei melhor na sua sugestão e resolvi assim:

<?php
if($_GET['pag'] == "sobre"){
?>
...
CONTEUDO HTML
...
<?php
}else{
  Header("Location: erro.php");
}
?>

Fiz uns testes rápidos aqui e funcionou! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui restringir o acesso a todas as páginas, só não a página "home.php" que é chamada logo assim que inicia a "index.php"

 

Quando eu entro no site, a "home.php" é chamada, ok? Só que a restrição nesta página não está funcionando de forma correta, afinal ele assim que inicia, não está recebendo nenhum parâmetro pelo GET.

 

Veja o código abaixo de como mais ou menos seria, mas não está funcionando:

HOME.PHP

<?php
if($_GET['pag'] == "home"){
	echo "comando de listar";
}else{
	echo "redireciona para a pagina de erro";
}
?>

Com esse código:

- se eu acessar a index.php que chama a pagina home.php, ele cai no "REDIRECIONA";

- Se eu acessar o home.php diretamente, também cai no "redireciona";

 

Meu objetivo é:

- Fazer com que ele liste assim que entra no site (EX.: www.meusite.com.br)

- Fazer com que ele liste quando clicar na página HOME (EX.: www.meusite.com.br/?pag=home)

- RESTRINGIR ACESSO, redirecionando para a página "erro.php" se tentar acesso direto ao arquivo (EX.: www.meusite.com.br/home.php)

 

Ajudam com essa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi como isso poderia me ajudar.

 

-EDIT-

 

Resolvi o problema assim:

<?php
if(basename($_SERVER["PHP_SELF"])=="index.php"){
	echo "listagem das noticias";
}elseif(basename($_SERVER["PHP_SELF"])=="home.php"){
	header("Location: erro.php");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cheguei até seu post porque tenho dúvidas de como resolver a seguinte situação:

 

"Como verificar e fulano chegou até essa pagina vindo de um link predeterminado, evitando o acesso se ele digitou diretamente ou mesmo se veio a partir de outro lugar?"

 

aí lendo sua resposta me surgiu a idéia abaixo:

 

se o cara digitar:

ww.meusite.com.br/arquivo.php?pag=<aqui repete o nome do arquivo php>

 

do modo como seu esquema de restrição está escrito não daria acesso da mesma forma?

Não testei, nem sei se o que escrevi expressa o que quero explicar, mas entendeu minha lógica?

teu script se baseia só no que vem do GET.

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.