Ir para conteúdo

POWERED BY:

Arquivado

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

Dlms

Pular páginas

Recommended Posts

Bom dia senhores,

 

alguém sabe me dizer se existe uma meneira de impedir que o usuário pule páginas jogando endereço no browser?

 

exemplo..

 

tenho uma aplicação com 3 páginas.. a primeira de login e outras duas ... se o usuário jogar no browser o endereço de qualquer uma das duas ele consegue passar direto sem fazer passar pela tela de login..

 

tem alguma maneira de impedir isto?

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem no login crie sessions, e crie um outro arquivo chame-o para as outras paginas que nao podem ser acessada sem o login e verifique se a sessão não existe usando o header() mande ele para o index do login novamente.

 

Tem de mais isso no google, pesquisadinha experta resolveria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo qual nome da sessão que vc cria na hora de logar ?

faz um arquivo verifica.php

 

e faz isso

 

session_start();
if(!isset($_SESSION['NOME DA SESSAO'])){

  header("Location: index.php");
}

 

 

depois só da include neste arquivo em todas as pagina que deve ser logado para entrar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, nesse caso terei que dar include em tudo.. o sistema tem várias telas.. e se o usuário souber a url de alguma delas ele pode acessar direto.. já tenho um arquivo checklogin startando uma session com nome "usuário"

 

então darei include desse arquivo em todas as telas do sistema e adicionarei o seguinte código:

 

session_start(); if(!isset($_SESSION['usuário'])){   header("meu direcionamento"); }

 

confere?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Yes! mas deixa te pergunta você não esta navegando em url amiavel ? ou query string ? seria mais facil se tivesse um cabeçalho ja iniciando era só jogar nele .... mas se não tiver o jeito é tu ir em pagina por pagina

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom.. começei a programar com php tem 3 meses e acabei de virar o sistema da empresa agora.. então nem de tudo eu to por dentro..

 

como eu terminei esse sistema e eu mesmo consigo jogar endereços na url e ir pra onde quiser... lembrei dessa situação.. por que minha chefe já vai querer colocar o sistema no servidor... sacou?

 

ai fiquei em dúvida se quando ele estiver no servidor se o usuário conseguiria fazer o mesmo.. e o que vc quer dizer com isto?

 

"você não esta navegando em url amiavel ? ou query string ?"

 

não saquei isso ai..

Compartilhar este post


Link para o post
Compartilhar em outros sites

query string é aquela navegação "normal" que vc deve ter visto nos sites : index.php?pg=alguma coisa
a url amigavel ja seria mais dinamica e simples de navegar site.com/home ou /empresa ou /noticia-aqui-blabla

 

ambas a gente tem um arquivo header.php ou tudo na index mesmo a parte de cima do site ficaria intacta ..ai você poderia jogar essa verificação lá ... e todas as paginas iram ler essa função.

 

mas pelo jeito se estiver em arquivo por arquivo você terá que inclur este arquivo la ...

 

 

include"verifica.php";

Compartilhar este post


Link para o post
Compartilhar em outros sites

tendi então é isto mesmo que falei tu cria o arquivo verifica e sai incluindo ele no topo das pagina que você deseja "proteger"

 

 

<?php


 session_start(); 
if(!isset($_SESSION['usuário']))
{
   header("Location: arquivo de volta"); 
}

?>

 

 

ai tu joga no topo de todas

 

 

<?php include"verifica.php";?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, não consegui... olha como está meu arquivo checklogin

 

<?Php


session_start("usuario");
// senha e enviado de forma post
$_SESSION["AUTH"] = true;
include("conexao.class.php");
//instanciando o objeto
$minhaConexao = new Conexao();


// Varificando o Click do botão


if(isset($_POST['btn_enviar']))
{
$myusername=$_POST['edit_login'];
$mypassword=$_POST['edit_senha'];


// Passando a variável para caixa alto


$myusername=strtoupper($myusername);

// Verificando se a variável está vazia


if(empty($myusername) or empty($mypassword))
{
$mdg="<div align=\"center\"> <font><b><h2>Preencha todos os campos</h2></b></font></br>
</div> <div align=\"center\">
<input type=\"submit\" name=\"btn_voltar_index\" value=\" Voltar \" onClick=\"location.href='http://localhost/movimentacao_veicular/'\">
</div>";
echo"$mdg";

}

else
{

// Fazendo verificação do usuário


$x=$minhaConexao->verificarusuario($myusername,$mypassword);


if($x==0)
{
$mdg="<div align=\"center\"> <font><b><h2>Login ou Senha incorretos</h2></b></font></br>
</div> <div align=\"center\">
<input type=\"submit\" name=\"btn_voltar_index\" value=\" Voltar \" onClick=\"location.href='http://localhost/movimentacao_veicular/'\">
</div>";
echo"$mdg";
}
else
{
$_SESSION['Usuario']=$myusername;
$_SESSION['Senha']=$mypassword;

$minhaConexao->dataacesso($myusername);
header('Location:http://localhost/movimentacao_veicular/tela_principal/movimentacao_tela_principal.php');
//session_destroy();
exit;
}

}

}

//session_destroy();
?>

 

 

esse é o arquivo que verifica e abre a session... e no topo da página coloquei o seguinte...

 

<?php


include("../conexao_login/checklogin.php");


if(!isset($_SESSION['usuario']))
{
header('Location:http://localhost/movimentacao_veicular/tela_principal/movimentacao_tela_principal.php');
}
else
{
header('Location:http://localhost/movimentacao_veicular/');
}
?>

 

devo ter entendido errado..

Compartilhar este post


Link para o post
Compartilhar em outros sites

a maior parte eu fiz uma ou outra coisa eu achei na net... mas falta eu organizar ele ainda.. iei comentá-lo e tal... identar..

Compartilhar este post


Link para o post
Compartilhar em outros sites

session_start("usuario"); 

 

<< troca por isso

 

session_start();

 

se não funciona não vale a pena estudar esse bagulho ai rsrrs faz aquele arquivo que falei e joga la ta mais simples ele e irá funciona normal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas esse "usuário" apenas nomeia a sessão... e se não tiver um nome.. acho que não tem como fazer referência..

 

mas enfim... então farei outro arquivo php separado.. somente com este conteúdo:

 

<?php

 

if(!isset($_SESSION['usuario']))
{
header('Location:http://localhost/mov...a_principal.php');
}
else
{
header('Location:http://localhost/mov...tacao_veicular/');
}
?>

 

e depois farei referência a ele no topo de cada página.

certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas esse "usuário" apenas nomeia a sessão... e se não tiver um nome.. acho que não tem como fazer referência..

 

mas enfim... então farei outro arquivo php separado.. somente com este conteúdo:

 

<?php

 

if(!isset($_SESSION['usuario']))

{

header('Location:http://localhost/mov...a_principal.php');

}

else

{

header('Location:http://localhost/mov...tacao_veicular/');

}

?>

 

e depois farei referência a ele no topo de cada página.

certo?

 

 

o session_start ele inicia a sessao oque garante o nome é $_SESSION['nome'] < oque vai aqui

 

e fica atento que :

 

$_SESSION['Usuario']=$myusername;

$_SESSION['Senha']=$mypassword;

 

 

a sessao usuario e senha esta com a primeira letra maiúscula

 

 

este if que te passei não precisa de else pois ele só vai jogar para outro lugar se nao existe o login ... todavia ele ja esta incluso nas paginas ou seja não será preciso redireciona para outro lugar se ja estiver logado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

criei um arquivo separado com o seguinte conteúdo

 

<?php


session_start();


if(!isset($_SESSION['usuário']) or !isset($_SESSION['senha']))
{
header('Location:http://192.168.1.32/movimentacao_veicular/');
}

?>

 

 

e na página que eu não quero que o usuário passe referenciei assim

 

<?php
include("../conexao_login/verifica_pg.php");
?>

 

eu testei.. e ele e continua pulando o login.. indo pra outra página...

 

 

 

agora é o seguinte.. a minha página principal aponta pro checklogin.. ele que faz a verificação e tudo mais...

entao essa informação aqui if(!isset($_SESSION['usuário']) or !isset($_SESSION['senha']))

 

ele não deve pegar. por que checklogion e o arquivo que acabei de criar não estão ligados de alguma forma..

to errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como te falei suas sessões o indice delas iniciam com letra maiuscula , o usuario e senha ...

agora se não funciona alterando isso provavelmente nome da sessao ta errado

 

ai tu faz seguinte da um print_r($_SESSION); para ver quais sessões estão ativas no site só para pegar o nome e validar corretamente !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse lance do maíuscula já corrigir naquela hora mesmo..



Ai, fiz o text com o print.. e ele tá passando as variáveis certinhas.. agora o que acontece.. se eu abro o browser e colo o caminho de uma página depois do login.. ele faz o que é correto.. redireciona para a index.. porém.. se eu logar no sistema.. e depois sair do sistema... e tentar fazer o mesmo procedimento de colar a url e entrar.. ele passa da tela de login.. ou seja.. é como se a sessão continuasse ativa depois de eu ter logado uma vez....

 

então.. se meu usuário logar somente uma vez e não fechar o browser ele ou quem mais vier depois entra no sistema de qualquer forma.. nesse caso preciso sempre matar a sessão do usuário assim que sair né? o Destroy() resolve isso? onde na verdade colocarei ele para que não de problemas com o usuário autenticado no momento?

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.