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

Sistema De Login E Redirecionamento


©JOÃO GABRIEL MARQUES

Pergunta

Olá a todos!

Seguinte: preciso criar um sistema de cadastro e login para o meu site. Sei como fazer isso através do Dreamweaver, que é muito simples. Minha dúvida é:

Como faço para que o usuário, assim que ele fizer o login, seja redirecionado para a página que ele tentou acessar antes de efetuar o login? Vou dar um exemplo. No site do jornal Folha de S.Paulo(http://www.uol.com.br/fsp), se você clicar no link de qualquer notícia, você será direcionado para uma página do tipo https://acesso.uol.com.br/login.html?dest=C...p;COD_PRODUTO=7. Nesse caso, quando o usuário faz o login, ele não é redirecionado para uma página pré-determinada, mas sim, para a página que ele tentou acessar. E o mais interessante é que, no site da Folha, existe QueryString em páginas estáticas, htm ou html.

Então, pergunto:

1 - Como fazer com que o usuário, logo após o mesmo efetuar o login, seja redirecionado para a página que ele tentou acessar antes de precisar fazer o login?

2- Como faço para proteger páginas estáticas (htm, html, shtml etc.) ?

3- Como impedir que sejam inseridos registros duplicados no mySQL, pelo Dreamweaver? Ex.: se já existir um usuário de nome "fulano", caso alguém tente fazer o cadastro com esse mesmo nome de usuário, acima do formulário apareceria uma mensagem de erro notificando o visitante que o usuário que ele escolheu já está sendo usado por outra pessoa. Não sei como faz isso!

Obrigado!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Faz um codigo que verifica se o cara esta ou não logado. Se não estiver ele abre uma seçao e grava a pagina anterior, logo depois já é redirecionado para a pagina de login de usuario. Depois do login ele vai para a pagina anterior. então o mais importante aqui é aprender session.

Para iniciar uma session:

session_start();
p]Para gravar dados em uma seçao:
$_SESSION['pagina'] = "nomepagina.php";
Para resgatar uma session em qualquer parte do site:
session_start();
$pagina =$_SESSION['pagina'];
Para redirecionar uma pagina para a pagina anterior:
header("Location: $pagina");

Eu não testei o codigo, mas acho que esta certo. Se não estiver tenta pesquisar no google. Qualquer coisa posta aew.

:)

Editado por Dracom
Link para o comentário
Compartilhar em outros sites

  • 0

Antes de mais nada... umas correções, as superglobais ($_SESSION,$_POST,$_GET...etc) TÊM que ser escritas em letras maiúsculas, motivo? As variáveis (superglobais nada mais são do que variáveis pré-definidas) são case sensitive em PHP, ou seja $_session e $_SESSION são coisas difentes, a primeira é uma variável que você criou, a segunda é a superglobal $_SESSION... assim como $a e $A são diferentes...

session_start(); <- é assim (como está no primeiro exemplo) e não session-start();

O header("Location: '$pagina'"); também está errado, não tem apóstrofos ali após o location, supondo que o $pagina tenha o valor de index.php, ele vai tentar redicionar para uma página chamada 'index.php' (com os apóstrofos e é claro que não vai encontrar, o correto é apenas: header("Location: $pagina");

Uma solução mas simples para o caso do problema 1 é o usar a superglobal $_SERVER em conjunto com com HTTP_REFERER, isso tem a informação da página anterior a que o cara está, por exemplo, se antes o cara estava na página: leitura.php (também pode ser leitura.html... ou qualquer extensão) e agora está na página login.php, o $_SERVER['HTTP_REFERER'] vai indicar a página leitura como referência (pois ela é a anterior), nessa caso você teria que salvar essa informação em algum lugar (pode ser uma sessão como já foi dito) e quando confirmar o login resgatar isso redirecionar o cara com o header...

Para o segundo problema, não tem solução, mas se você simplesmente salvar as páginas em .php, ai já pode começar a proteger

Para o terceiro ponto, antes de inserir faça uma pesquisa pelo que está sendo informado, use o mysql_num_rows para contar quantos registros retornaram, se for igual a zero é porque a informação ainda não existe no BD, se for diferente de zero é porque a informação já existe

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...