marcosfj1 0 Denunciar post Postado Outubro 19, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Outubro 20, 2011 Utilize HTTP_REFERER, você vai ter que armazenar todos os dados que estão na URL também, caso haja alguma query string. Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Outubro 20, 2011 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
Andrey Knupp Vital 136 Denunciar post Postado Outubro 20, 2011 Ele pode fazer um 'parse_url', verificando se a requisição veio do site dele .. Compartilhar este post Link para o post Compartilhar em outros sites
marcosfj1 0 Denunciar post Postado Outubro 20, 2011 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
visitante_php 0 Denunciar post Postado Outubro 20, 2011 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
marcosfj1 0 Denunciar post Postado Outubro 21, 2011 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