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

Dúvidas De Como Pegar O Parametro E A Página


mrspy

Pergunta

Pessoal, sou iniciante em PHP, estou lendo alguns livros e fazendo meu primeiro programa. Minha dúvida é a seguinte.

Eu tenho um sistema que é necessário fazer a autenticação

Eu estou utilizando sessions.

Quando o cara se loga no sistema, é criado uma session e todas as páginas subsequentes verificam se a session está criada.

Até ai, tudo perfeito, mas queria fazer o seguinte:

Tipo, em mando um link para o cara, por exemplo "http://www.pagina.com/pagina1.php?id=3&tema=5"

Dentro dessa pagina1.php eu tenho um require que chama o arquivo que faz a validação do sistema.

Queria saber o seguinte, caso a pessoa não esteja logado, vai ser chamado o arquivo que faz a validação, após feito a validação eu queria que ele fosse encaminhado para a página que foi solicitado antes da validação, no caso "pagina1.php?id=3&tema=5".

Vejam que a página pode ser qualquer uma e os parametros do $_GET também.

Deu para entender?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Eu resolvi meu prb assim

nas pagina protegida criei uma variavel tipo url

$url = "http://"."$_SERVER[HTTP_HOST]"."$_SERVER[REQUEST_URI]";

Na que faz a verificação eu passo via $_GET a variavel $url

e na autenticação quando o cara loga e u mando ele pelo Header

Header("$_GET['url']");

Ve se da

Qualquer coisa posta

Adailton

$url = "http://"."$_SERVER[HTTP_HOST]"."$_SERVER[REQUEST_URI]";

Essa parte eu entendi....

Na que faz a verificação eu passo via $_GET a variavel $url

e na autenticação quando o cara loga e u mando ele pelo Header

Header("$_GET['url]");

Agora nessa parte, eu já me perdi....

Tipo, na verdade eu fiquei meio perdido na passagem dos dados para a parte de verificação...

Tem como por um exemplo básico das 3 páginas? Somente os comandos de passagem de dados, só para entender melhor....

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui....

Segue minha solução para quem quiser algo do tipo

teste.php- Página responsável pelo login

<?
if (isset($_GET["uri"]))
	$url = $_GET["uri"];
else
	$url ="principal.php";

session_start();
session_unset();
session_destroy();



?>
<form name="form1" method="post" action="teste4.php">
  <p>Login: 
    <input type="text" name="login">
  </p>
  <p>Senha: 
    <input type="password" name="senha"> 
  </p>
  <p>
    <input name="url" type="hidden" id="url" value="<? echo $url; ?>">
</p>
  <p>
    <input type="submit" name="Submit" value="Enviar">
</p>
</form>
teste2.php- Página que eu quero acessar passando um parametro
<?
$url = urlencode($_SERVER['REQUEST_URI']);

require "teste3.php";

echo $login;
echo "<br>";
echo $senha;

?>
teste3.php- Página que verifica se as sessões LOGIN e SENHA estão criados
<?
session_start();
if (!isset($_SESSION["login"]) || !isset($_SESSION["senha"]))
{
	echo '<meta http-Equiv="refresh" content="5;URL=teste.php?uri='. $url .'">';
	echo "Redirecionando para o login....<br>Aguarde....";
	exit;
}
else
{
	$login = $_SESSION["login"];
	$senha = $_SESSION["senha"];
}
?>
teste4.php- Página que verifica o login e a senha
<?
if ($_POST["senha"]<>6805)
	{
  echo "Senha incorreta";
  exit;
	}
session_start();

$_SESSION["login"] = $_POST["login"];
$_SESSION["senha"] = $_POST["senha"];

echo '<meta http-Equiv="refresh" content="5;URL='. urldecode($_POST["url"]) .'">';
echo "Redirecionando para a página ". urldecode($_POST["url"]) ."...";

?>

Vamos em etapas:

A - Acesso pelo navegado o endereço http://servidor/teste2.php?registro=1&tema=2

Na página teste2.php, tem uma variável chamado $url. Essa variável vai pegar a url que foi solicitada (teste2.php?registro=1&tema=2). Note que existe o urlencode. Ele está codificando a url para que ele possa ser passado para a outra página sem gerar problemas.

Logo abaixo, tem o require, que chama o teste3.php. Este teste3.php é o script que vai fazer a verificação se existe ou não a sessão criada.

Caso a sessão esteja criada, ele vai continuar o script, escrevendo o login e a senha na tela.

B - teste3.php

Na linha 3, o script verifica se as sessões nome e senha existem, se não existirem, ele vai redirecionar para a página teste.php.

Note que é passado um parametro junto com a requisição da página, o uri. Neste uri vai estar o conteúdo da variável $url, que foi pega da página teste2.php.

C - teste.php

Na 2 linha, ele verifica se o parametro uri contém alguma coisa, caso contenha, ele vai atribuir à variável $url o valor do paramêtro uri. Caso não tenha nada, ele vai atribuir o valor principal.php

Essa verificação verifica se o login foi chamado apartir de alguma página protegida. Caso ela tenha sido chamada por uma página protegida, após a verificação, o usuário será direcionado para a página solicitada.

Caso a página não tenha sido solicitada por outra página, ela simplesmente irá levar o usuário para a página principal.php

D - teste4.php

Relativamente simples de entender.

Faz a comparação da senha

Seta as sessões

Encaminha o usuário para a página solicitada pelo teste.php

Notem que estes testes não tem qualquer tipo de segurança e conexão com banco de dados. Eu fiz desde jeito só para que quem quiser, entender como resolvi o problema.

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,6k
×
×
  • Criar Novo...