Jump to content


Photo

Checando Em Cada Pagina Se O Usuario Esta Logado


  • Faça o login para participar
9 replies to this topic

#1 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 14/12/2009, 19:04

Pessoal queria fazer uma funcao para colocar nas paginas que checasse se o usuario esta logado se ele estiver mantem a pagina se nao ele redireciona para a de login:

ex.:

funcao.php:

<?
function validasessao()
{
if(!$_SESSION)
{
header ("Location: index.php?acao=logar");
exit;
}
}
?>


e nas paginas assim:

teste.php:

<?
include 'funcoes.php';

validasessao();

?>
agora vem o conteudo caso ele esteja logado



vlw e que eu nao sei como fazer!

#2 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 14/12/2009, 19:22

Você não sabe como fazer? Mas você fez aí... :P

Só faltou iniciar a sessão com session_start(). ;)
att,
Muller Dias
ex-administrador Fórum WMO

#3 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 14/12/2009, 19:28

uffa pensei que isso nao daria serto!

mais tipo session_start em todas as paginas ne?

no topo de todas ne?

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 14/12/2009, 20:15

Isso mesmo... ;)

Além de session_start(), também é bom colocar [url="http://www.php.net/session_name"]session_name()[/url].

<?php

session_name("NomeDaSessao");
session_start();

?>

Se você não colocar um nome para a sessão, o cookie da sessão terá o nome padrão PHPSESSID. Quando você tem mais de uma área restrita (por exemplo área do cliente e admin) dentro do site, vira uma bagunça. A sessão criada dentro de uma das áreas iria funcionar em ambas, imagina o cliente entrar na área do cliente e depois ter acesso liberado na admin. :lol:
att,
Muller Dias
ex-administrador Fórum WMO

#5 Fábio Web Arts

Fábio Web Arts

    Web IN Arts

  • Usuários
  • 299 posts
  • Sexo:Masculino
  • Localidade:No Saco De Magé
  • Interesses:Tudo que for da área de Informática

Posted 14/12/2009, 20:59

mais como funcionaria o session name?

#6 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 15/12/2009, 07:36

Amigo, bom dia.
Tudo bom?

O session_name retorna o nome da função e se você definir o parametro ele define o nome da função.
Isso é bom para separar as coisas...
Caso não defina o nome da sessão, se usar mais de uma sessão diferente no mesmo sistema, uma irá acessar a outra e isso pode gerar problemas...

Qualquer coisa é só acessar o php.net que tem a documentação completa.
Abraços

Mateus
Mateus Antunes
MBASistemas

#7 André Manoel

André Manoel

    Doutor

  • Usuários
  • 996 posts
  • Sexo:Masculino
  • Localidade:Brasilia

Posted 15/12/2009, 14:07

Pessoal queria fazer uma funcao para colocar nas paginas que checasse se o usuario esta logado se ele estiver mantem a pagina se nao ele redireciona para a de login:

ex.:

funcao.php:

<?
function validasessao()
{
if(!$_SESSION)
{
header ("Location: index.php?acao=logar");
exit;
}
}
?>


e nas paginas assim:

teste.php:

<?
include 'funcoes.php';

validasessao();

?>
agora vem o conteudo caso ele esteja logado



vlw e que eu nao sei como fazer!


E ae meu irmão!

Tudo na paz...?

Eu já passei por esse problema.

Existem diversas maneiras de resolver isso!
Deixa eu te mostrar uma delas.

Quando o usuário fizer o login, você precisa armazenar os dados desse usuário para checar se ele está logado ou não.
Quando o login falha é porque tem algo errado, ou o nome do usuário está errado ou a senha está errada. Mas se tudo der certo,
O usuário vai entrar no sistema e você pode pegar a consulta realizada no banco de dados para utilizar os dados mais tarde.


<?php
//iniciar a sessão
session_start();

//usuário que acessou o login
$usuario = $resultado_do_banco_de_dados;

//colocar o usuário na sessão
$_SESSION['usuario_logado'] = $usuario;
$_SESSION['usuario_logado']['logado'] = true;
?>


Com isso você vai guardar os dados do usuário na sessão, lembrando que essa variável "$resultado_do_banco_de_dados" vai ter a consulta
realizada no banco de dados quando o usuário realiza o login.
Esse código você coloca na página que está verificando se o usuário conseguiu logar no sistema.

Para realizar a checagem em todas as outras páginas você pode criar outro arquivo só com essa função, para que você não precise ficar digitando as funções todas as vezes que precisar verificar o login.


<?php
//iniciar a sessão
session_start();

function verificaLogin()
{
//verifica se existe uma sessão com esse nome
if( isset( $_SESSION['usuario_logado'] ) )
{

//se existir você checa se o usuário armazenado nesta sessão está logado
//utilizando a variável que você guardou antes na sessão

if( $_SESSION['usuario_logado']['logado'] )
{
//o usuário está logado
}else{
//senão estiver logado você redireciona ele para a página que você quer.
header('Location: index.php');//aqui você substitui index.php pelo página que você quer
}

}else{

//se a variável não estiver na sessão, é sinal que não existe ninguém logado
header('Location: index.php');//aqui você substitui index.php pelo página que você quer
}

}
?>



Para checar o login nas outras páginas você só precisa incluir esse arquivo e chamar a função

Exemplo:

<?php
session_start();
include_once "verifica_login.php";

verificaLogin();
?>


E para realizar o logout
Você precisa fazer outra página.
para limpar a sessão.

arquivo logout.php


<?php
//iniciar a sessão
session_start();

//destruir a sessão
unset( $_SESSION['usuario_logado' );
session_destroy();

//redirecionar para a página que você quer.
header('Location: index.php');
?>



Espero ter ajudado!
Abraços!
Iniciando na Ajuda On line...

Posted Image Meu post lhe ajudou? Reputar/votar é uma das formas de agradecer.

#8 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 15/12/2009, 15:44

Tudo que vc quer, vc encontra exatamente aqui:

http://forum.wmonlin...arios-completo/

A verificação que eu faço é parecida com a sua, onde a diferença é que verifico se uma específica sessão e está aberta e não apenas se tem sessão aberta.

Da uma olhada.... talvez vc se identifique.... é bem básico e funcional.

(y) Até mais

#9 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 15/12/2009, 16:56

Existe uma forma mais fácil.

Eu tenho o arquivo de configuração, onde faz conexão etc.

config.php


Nas páginas restritas, eu faço seguinte:

include('config.php'); if($contagem == 0) { //Ou seja, caso não tenha usuário com os dados da sessão  echo 'Faça login';  }else{  echo 'Bem vindo!'; }


Bem simples.

Até mais ^_^

Edição feita por: Dudu, 15/12/2009, 16:57.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#10 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 15385 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 17/10/2017, 18:43

Commander Cialis 10 Provera In Internet Discount Overseas Prospecto Finasteride Propecia viagra Tadalafil 5mg Order Levitra No Prescription
Keflex Expansion Joint generic viagra Cheaped Sample Pack Effets Cialis Generique
Prezzi Viagra In Farmacia discount isotretinoin acne for sale best website visa Bayer Levitra lowest price for 20 mg of levitra Cialis Am Gunstigsten
Fish Disease Pop Eye Amoxicillin Treatment donde comprar levitra en america Cialis Viagra Generico Online
Cialis Und Paracetamol Venta De Cialis Por Internet viagra Comprar Clozapine
Propecia Knoll buy viagra online Propecia Afectivo




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq