Ir para conteúdo

POWERED BY:

Arquivado

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

fcottf

[Resolvido] Guardar ultima página acessada

Recommended Posts

Olá Pessoal.

 

Estou tentando fazer um esqueminha simples, onde se o user tentar acessar uma página interna, mas não estiver logado, ele vai pra página de login, e quando logar, cai na página que ele tentou acessar quando não estava logado.

 

Teoricamente eu achei que estava tudo certo, mas não esta funcionando.

Alguém sober de um código melhor, ou qual é o erro deste ?

 

pagina interna

<?php
session_start();
$basepage = basename($_SERVER['PHP_SELF']);
			if (($basepage != "login.php") && ($basepage != "index.php")){
				$_SESSION["lastpage"] = $basepage;
?>

login.php

<?php
session_start();
	//funções q verificam se é valido e retorna true para $login se for...
	 if ($login){	
					   //funções para habilitar cookies para logar o user
			print "<script>window.location=('" . $_SESSION['lastpage'] . "')</script>";
			
		}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não....

quando eu coloco "<script>window.location=('index.php')</script>";

 

por exemplo... ele vai redirecionar certinho pra index.php

 

agora se o $_SESSION['lastpage'] = "index.php";

"<script>window.location=('" . $_SESSION['lastpage'] . "')</script>";

 

ele não redireciona.. ele carrega a pagina login.php denovo!

quando abro a pagina do login... pelos echos q fiz... a session ta com a variavel guardada... mas quando dou o enter do form... a session esta empty...

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora se o $_SESSION['lastpage'] = "index.php";

Mas, segundo esta parte do script, $_SESSION['lastpage[] nunca será index.php:

if (($basepage != "login.php") && ($basepage != "index.php")){
:unsure:

 

Tente dar um alert() para ver qual é o conteúdo da variável

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim.... retorna vazio

 

login.php

<?php
session_start();
	//funções q verificam se é valido e retorna true para $login se for...
	 if ($login){	
					   //funções para habilitar cookies para logar o user
			echo "<script LANGUAGE=\"JavaScript\">{ alert ('" . $_SESSION['lastpage'] . "')}</script>"; 
			print "<script>window.location=('" . $_SESSION['lastpage'] . "')</script>";
			
		}
?>

fiz um teste com cookie, também não funcionou =S

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá fcootf e beraldo,

tente mudar o operador &&(E) para ||(OU) no código ou somente se for diferente de login.php

 

<?php
session_start();
$basepage = basename($_SERVER['PHP_SELF']);
			if (($basepage != "login.php") || ($basepage != "index.php"))
{
				$_SESSION["lastpage"] = $basepage;
}

?>

Creio que seja isso... se for diferente de login, ou se for diferente de index.php ele grava a session...

 

abraços,

léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema, léo, é que nem a index.php nem a login.php podem estar nessa variável de sessão. Então tem que usar AND, mesmo.

 

fcottf, você tem certeza de que acessou uma página diferente da index.php e da login.php antes de efetuar login?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Beraldo e fcottf,

tcottf fiz um teste e queria saber de onde vem a variavel $login. É de uma consulta do banco??

 

esta parte aqui não esta indo...

 

if ($login){	
					   //funções para habilitar cookies para logar o user
			print "<script>window.location=('" . $_SESSION['lastpage'] . "')</script>";
			
		}

A sessão não esta vazia aqui...

 

Abraços,

léo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola leonardo e beraldo..

eu tentei com cookie fiz a mesma coisa e deu certo!

=S ... então acho q pode dar por encerrado o tópico...

invez de usar as sessions, tentando cookie depois de uns probleminhas ou outros rolou!

=D

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.