Jump to content


Photo

Login


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

#1 Tiagorj

Tiagorj

    Ativo

  • Usuários
  • 373 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 04/10/2009, 10:20

Bom dia galera,

Estou começando a programar OO. Estou fazendo um sistema de login. O login ocorre tranqüilamente.
O problema ocorre quando eu nas demais páginas vou verificar se o usuário está logado. Não estou sabendo passar esse valor da sessão para o método... então estou mandando a classe e também a chamada de cada página!

<?php

class Conexao
{
var $login;
var $senha;

function __construct ($login, $senha)
{
$this->login = "$login";
$this->senha = "$senha";

}

function consultaConexao()
{
$conectar = mysql_connect("localhost", "descodi_contato", "contato");
mysql_select_db("descodi_contato", $conectar);
}

function consultaLogin()
{

$sessao = mysql_query("select * from login where login = '$this->login' and senha = '$this->senha'");
$consulta = mysql_num_rows($sessao);

if ($consulta == 1)
{

$_SESSION["login"] = "$login";
$_SESSION["senha"] = "$senha";
echo '<script language= "JavaScript">location.href="area.php"</script>';

}

else
{
echo '<script language= "JavaScript">location.href="login_invalido.php"</script>';

}

} //fecha verificaLogin

function verificaLogin() {


$sessao = mysql_query("select * from login where login ='$login' and senha = '$senha'");
$total = mysql_num_rows($sessao);
echo " o total é $total ";

if($total == 0)
{
unset($this->login);
unset($this->senha);


echo "login: $this->login <br>";
echo "senha: $this->senha <br>";
echo " nao logado!!";
exit();

}

} //fecha verifica login

}

?>



e a chamada em cada página para verificar


include "classes/ClassConexao.php';

$login = $_SESSION["login"];
$senha = $_SESSION["senha"];

$conexao = new Conexao($login, $senha);
$conexao->consultaConexao() ;
$conexao->verificaLogin() ;

esse modo que eu fiz, não funciona, como eu passo o valor da sessão para o método verificaLogin()?

Obrigado!

Edição feita por: Tiagorj, 04/10/2009, 10:24.

Tiago
Quem quiser me adicionar no msn: tiagoc_almeida@hotmail.com
Meu PC: Sempron 64 2.800+ (box) / Placa-mãe ECS 760GX-M / Memória DDR 256 + 256 = 512 mb / HD 80 GB (Samsung) / monitor LCD Samsung 15"

#2 Renato Maia

Renato Maia

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:Ribeirão Preto
  • Interesses:Desenvolvimento e tecnologia.

Posted 04/10/2009, 11:56

Bom dia Tiago.

Após o usuário reaizar o login, não tem o porque você gravar o usuário e senha do mesmo em uma sessão para verificar novamente no banco, em uma página posterior...
Grave apenas uma sessão ex: logado = "OK", e faça em include que apenas verifique se a sessão é igual a "OK".

O grande motivo de você não realizar este procedimento, é que em toda página você esta gastando tempo de processamento realizando uma consulta no banco, mesmo que minima, usando sessão você vai melhorar o processamento do servidor.
Renato Maia
Microsoft Certified Prrofessional | MCP .NET
RenatoMaia.Net.br tudo sobre desenvolvimento .Net e Tecnologias.

#3 Tiagorj

Tiagorj

    Ativo

  • Usuários
  • 373 posts
  • Sexo:Não informado
  • Localidade:Rio de Janeiro

Posted 04/10/2009, 12:26

Obrigado pela ajuda!
Então não ha necessidade de fazer isso, apenas verificar se existe no servidor.

Só que eu tenho uma duvida.
Eu tenho que alterar minha classe?
Pq se eu preciso instanciar a classe e chamar o método diretamente, a minha classe pede que o construtor tenha os parametros... acho que me enrolei mais na orientação a objeto, você poderia me ajudar a resolver?

$conexao = new Conexao($login, $senha); existe algum modo de chamar ela diretamente sem passar pelo construtor?
$conexao->consultaConexao() ;
$conexao->verificaLogin() ;
Tiago
Quem quiser me adicionar no msn: tiagoc_almeida@hotmail.com
Meu PC: Sempron 64 2.800+ (box) / Placa-mãe ECS 760GX-M / Memória DDR 256 + 256 = 512 mb / HD 80 GB (Samsung) / monitor LCD Samsung 15"

#4 Renato Maia

Renato Maia

    Turista

  • Usuários
  • 39 posts
  • Sexo:Masculino
  • Localidade:Ribeirão Preto
  • Interesses:Desenvolvimento e tecnologia.

Posted 04/10/2009, 14:04

Ao meu ver, você deve remover o construtor da classe, deixando mais dinâmico, e no metodo verificaLogin, você cria a verificação da session...
Com isso terminam os seus problemas hehe..
Qualquer coisa, poste ai que eu te ajudo..
Mais acho que você não vai ter mais problemas agora..

Mais esse é o caminho, você esta pegando agora os conceitos de POO....

Bons estudos..
Renato Maia
Microsoft Certified Prrofessional | MCP .NET
RenatoMaia.Net.br tudo sobre desenvolvimento .Net e Tecnologias.




0 user(s) are reading this topic

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

IPB Skin By Virteq