Ir para conteúdo

POWERED BY:

Arquivado

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

marcosfj1

[Resolvido] Redirecionar para ultima pagina visitada, apos login

Recommended Posts

Bom galera tenho o seguinte problema:

 

Qdo o cliente entra na minha loja ele pode andar por departamentos, fazer a busca, pra caso se interesse por algum produto ai sim ele vai para a pagina de login.

Na pagina de login eu coloquei o HTTPS da seguinte forma:

if($_GET['l'] == 'cliente_login' AND !$_SERVER['HTTPS']) {
$nomescript = $_SERVER['SCRIPT_NAME'];
$nomehost = $_SERVER['SERVER_NAME'];

$protocolo = 'https://';
header( "Location: ".$protocolo.$nomehost."?l=cliente_login");
}

 

Bem dessa forma a pagina torna-se https, bom o problema é que se o login é autenticado eu jogo ele para ultima pagina q ele estava...exemplo se ele vez um busca por televisao, entao estava sendo exibido todas a televisoes, ai ele fez login entao tenho que jogar ele novamente na pagina onde ele estava, ou seja a de televisao.

 

O problema é que nessa pagina que mostra todos os produtos eu tenho que retirar o HTTPS, afinal ele nao pode ficar em todas as paginas. Bom ai eu faço o código:

if($_SERVER['HTTPS']){			
$nomescript = $_SERVER['SCRIPT_NAME'];
$nomehost = $_SERVER['SERVER_NAME'];
$protocolo = 'http://';

header( "Location: ".$protocolo.$nomehost.$nomescript);
}

 

E claro dá certo retirasse o https....O problema é que com isso o lugar onde o cliente estava, no exemplo na busca por televisao, acaba se perdendo, entao queria saber se tem jeito de eu remontar esta URL de forma que jogue a onde o cliente estava.

 

Alguem sabe?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Utilize HTTP_REFERER,

 

Isso é problemático Andrey, se o usuário estiver vindo de um outro site, ele vai fazer login e voltar para o outro site.

 

:P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa amigos, obrigado por tentarem ajudar

 

Mas entao, eu fiz o seguinte. Criei um cookie pra pegar onde o cara tava na pagina de produto, e montei a url assim:

 

$nomescript = $_SERVER['SCRIPT_NAME'];
$nomehost = $_SERVER['SERVER_NAME'];	
$protocolo = 'http://';

$caminho = $_COOKIE['historico_produto2'];

if($_SERVER['HTTPS']){			
header( "Location: ".$protocolo.$nomehost.$caminho);
}

 

Bom ai até funcionou, apos o login ele volta pra pagina que o cliente tinha visitado....mas o estranho vem agora hehe

Se o cara nao clica em nada, nao navega pelos departamentos ou produtos, e vai direto fazer login, ele entra na pagina de login, digita as informacoes, e ai retorna pra pagina principal(o que deveria acontecer mesmo) mas o login não é feito, o cara faz o login mas continua sem ele

 

Este problema ainda nao consegui resolver, e pra falar a verdade nao sei o pq aconteceu isso hehe...se alguem souber contornar esta situacao, fala ai

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

muito simples, esta usando sessions pra fazer o login? se sim, armazene na session o request uri da propria pagina, e no login você redireciona para a pagina guardada na sessao apos o sucesso do login...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa pessoal, obrigado a todos que respoderam, consegui resolver a situação....na verdade acabei resolvendo com logica de programação e nem precisei de algum recurso novo, vou mostrar como eu fiz para caso um dia alguem precise:

 

Em LOGIN eu monto a URL com HTTPS:

if($_GET['l'] == 'cliente_login' AND !$_SERVER['HTTPS']) {
   $nomescript = $_SERVER['SCRIPT_NAME'];
   $nomehost = $_SERVER['SERVER_NAME'];

   $protocolo = 'https://';
   header( "Location: ".$protocolo.$nomehost."?l=cliente_login");
}

 

Bom beleza dessa forma remontei a URL e aparece perfeitamente no modo de segurança

 

Como não se deve aparecer em todas as paginas do site o HTTPS, por questão de desempenho e pq este reurso serve para criptografar os dados de entrada de dados, tive que retirar de algumas paginas, dentre elas a pagina produto.

Bom o problema é que nela apos o cliente visitar algum departamento ou realizar uma busca, ele fazia o login e perdia o redirecionamento, entao eu tive que usar um COOKIE para retornar o cliente no lugar que ele havia visitado, entao eu fiz:

 

$nomescript = $_SERVER['SCRIPT_NAME'];
$nomehost = $_SERVER['SERVER_NAME'];	
$protocolo = 'http://';

$caminho = $_COOKIE['historico_produto2'];

if($_GET['l']){
	if($_SERVER['HTTPS']){			
		header( "Location: ".$protocolo.$nomehost.$caminho);
	}
}else{
	if($_SERVER['HTTPS']){			
		header( "Location: ".$protocolo.$nomehost);
	}
}

 

Bem dessa forma a pagina produto é a que tem o $_GET['l'] entao só irá usar o COOKIE caso tenha vindo de produto. Asssim caso o cliente tente fazer login sem que tenha visitado alguma pagina de produto anteriormente, nao irá atrapalhar.

 

Mas um vez obrigado a quem se interessou por ajudar

 

Valeu

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.