Ir para conteúdo

POWERED BY:

Arquivado

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

CharliNBH

Login

Recommended Posts

Olá pessoal,

 

sou novo no fórum e em PHP. Estudando um pouco achei este fórum que já me ajudou muito quando eu programava em VB. Bem vamos aos códigos:

 

Classe login:

<?php
require_once 'C:/wamp/www/colaborador/classes/DB.php';
abstract class Login extends DB{
public function findLogin($nome, $senha){
$sql = "SELECT * FROM $this->table WHERE nome = :nome, pass = :pass";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome', $nome, PDO::PARAM_STR);
$stmt->bindParam(':pass',$senha, PDO::PARAM_STR);
$stmt->execute();
return $stmt->fetch();
}
}
depois..
<?PHP
// Descrição se $_POST['nome e senha'] existem
if (isset($_POST['logar'])){
$nome = $_POST['nome'];
$senha = $_POST['senha'];
$resultado = $Login->findLogin($nome,$senha); // O ERRO ACONTECE AQUI. VARIÁVEL INDEFINIDA E Call to a member function findLogin() on a non-objec
//Caso consiga logar cria a sessão
if (mysql_num_rows ($resultado) > 0) {
// session_start inicia a sessão
session_start();
$_SESSION['nome'] = $nome;
$_SESSION['senha'] = $senha;
}
//Caso contrário redireciona para a página de autenticação
else {
//Destrói
session_destroy();
//Limpa
unset ($_SESSION['nome']);
unset ($_SESSION['senha']);
//Redireciona para a página de autenticação
header('location:sys.php');
}
}
?>
NÃO ENTENDO. NA TEORIA ESTÁ TUDO CERTO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só uma recomendação...

 

Não utiliza isso assim não: require_once 'C:/wamp/www/colaborador/classes/DB.php';

 

Que esse é o caminho físico da sua máquina, utiliza assim: require_once '../classes/DB.php';

 

Esse é um exemplo vc tem que ver certinho onde está o arquivo que vc esta chamando...

 

Exemplo na seguinte estrutura..

 

COLABORADOR (pasta)

- index.php

- CASSES (pasta)

- DB.php

 

 

dentro do arquivo index.php vc chamaria require_once 'classes/DB.php';


Nessa sua segunda parte vc deve chamar a classe...

 

$Login = new Login();

Compartilhar este post


Link para o post
Compartilhar em outros sites

a linha 12 é o Execute() da classe Login. Acho que algo no sql que esta na classe Login descrita no primeiro post aqui dessa discussão.

 

valew galera.


a classe está assim:
class Login extends DB{
public function findLogin($nome, $senha){
$sql = "SELECT COUNT (*) FROM tbl_colaboradores WHERE nome = :nome and pass = :senha ";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome', $nome, PDO::PARAM_STR);
$stmt->bindParam(':senha', $senha, PDO::PARAM_STR);
$stmt->execute();
return $stmt->fetch();
}

Galera consegui. Ficou assim:

 

class Login extends DB{
public function findLogin($nome, $senha){
$sql = "SELECT * FROM tbl_colaboradores WHERE nome = :nome and pass = :senha ";
$stmt = DB::prepare($sql);
$stmt->bindParam(':nome', $nome, PDO::PARAM_STR);
$stmt->bindParam(':senha', $senha, PDO::PARAM_STR);
$stmt->execute();
return $stmt->fetch(PDO::FETCH_NUM);
}
---------------------------------------------------------------------------------------------------------------------------------------------------
<?PHP
$Login = new Login;
// Descrição se $_POST['nome e senha'] existem
if (isset($_POST['logar'])){
$nome = $_POST['nome'];
$senha = $_POST['senha'];
//Redireciona para a página do sistea
$resultado = $Login->findLogin($nome, $senha);
//Caso consiga logar cria a sessão
if ( ($resultado) > 0) {
// session_start inicia a sessão
session_start();
$_SESSION['nome'] = $nome;
$_SESSION['senha'] = $senha;
//Redireciona para a página de autenticação
header('location:sys.php');
}
//Caso contrário redireciona para a página de autenticação
else {
//Destrói
session_destroy();
//Limpa
unset ($_SESSION['nome']);
unset ($_SESSION['senha']);
//Redireciona para a página de autenticação
header('location:index.php');
}
}
?>

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.