Ir para conteúdo

POWERED BY:

Arquivado

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

rodrigobalbano

sistema de login não funciona

Recommended Posts

Boa tarde pessoal!

 

Novamente preciso da ajuda de vocês.

 

Fiz uma adaptação, para meu site "vintesel.com.br", do seguinte sistema de login:

 

http://www.phpmais.com/sistema-de-login-e-senha-em-php-o-banco-de-dados/

 

Porém,no Locaweb, não estou conseguindo realizar a conexão.

Acredito que o problema seja no arquivo "autenticador.php", porém ainda não consegui descobrir o erro.

 

Se puderem me ajudar.

 

Segue os códigos:

--------------------------------------------------------------------------------------------------------------------------------------------------------------

FORMULÁRIO:

 

<form action="controle.php" method="post" target="_self">
<input placeholder='usuario' type='text' name="email">
<input placeholder='senha' type='password' name="senha">
<button type='submit' class='animated infinite pulse' name="acao" value="logar">Login</button>
</form>
----------------------------------------------------------------------------------------------------------------------------------------------------------------
CONTROLE.PHP
<?php
require_once 'usuario.php';
require_once 'autenticador.php';
require_once 'sessao.php';
switch($_REQUEST['acao']) {
case 'logar': {
# Uso do singleton para instanciar
# apenas um objeto de autenticação
# e esconder a classe real de autenticação
$aut = Autenticador::instanciar();
# efetua o processo de autenticação
if ($aut->logar($_REQUEST['email'], $_REQUEST['senha'])) {
# redireciona o usuário para dentro do sistema
header('location: perfilestudante.php');
}
else {
# envia o usuário de volta para
header('location: loginestudante.php');
}
} break;
case 'sair': {
# envia o usuário para fora do sistema
# o form de login
header('location: loginestudante.php');
} break;
}
---------------------------------------------------------------------------------------------------------------------------------------------------
USUARIO.PHP
<?php
class Usuario {
private $id = null;
private $nome = null;
private $email = null;
private $senha = null;
public function getId() {
return $this->id;
}
public function getNome() {
return $this->nome;
}
public function getEmail() {
return $this->email;
}
public function getSenha() {
return $this->senha;
}
public function setId($id) {
$this->id = $id;
}
public function setNome($nome) {
$this->nome = $nome;
}
public function setEmail($email) {
$this->email = $email;
}
public function setSenha($senha) {
$this->senha = $senha;
}
}
-------------------------------------------------------------------------------------------------------------------------------------------------------
SESSAO.PHP
<?php
class Sessao {
private static $instancia = array();
/**
*
* @return Session
*/
public static function instanciar() {
if (self::$instancia =! null) {
self::$instancia = new Sessao();
}
return self::$instancia;
}
public function set($chave, $valor) {
session_start();
$_SESSION[$chave] = $valor;
session_write_close();
}
public function get($chave) {
session_start();
$value = $_SESSION[$chave];
session_write_close();
return $value;
}
public function existe($chave) {
session_start();
if (isset($_SESSION[$chave]) && (!empty($_SESSION[$chave]))) {
session_write_close();
return true;
}
else {
session_write_close();
return false;
}
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
AUTENTICADOR.PHP
<?php
abstract class Autenticador {
private static $instancia = null;
private function __construct() {}
/**
*
* @return Autenticador
*/
public static function instanciar() {
if (self::$instancia == NULL) {
self::$instancia = new AutenticadorEmBanco();
}
return self::$instancia;
}
public abstract function logar($email, $senha);
public abstract function esta_logado();
public abstract function pegar_usuario();
public abstract function expulsar();
}
class AutenticadorEmMemoria extends Autenticador {
public function esta_logado() {
$sess = Sessao::instanciar();
return $sess->existe('usuario');
}
public function logar($email, $senha) {
$sess = Sessao::instanciar();
if ($email == 'email@gmail.com' && $senha == 'senha') {
$usuario = new Usuario();
$usuario->setEmail($email);
$usuario->setId(1);
$usuario->setNome('Nome do usuário');
$usuario->setSenha($senha);
$sess->set('usuario', $usuario);
return true;
}
else {
return false;
}
}
public function pegar_usuario() {
$sess = Sessao::instanciar();
if ($this->esta_logado()) {
$usuario = $sess->get('usuario');
return $usuario;
}
else {
return false;
}
}
public function expulsar() {
header('location: controle.php?acao=sair');
}
}
class AutenticadorEmBanco extends Autenticador {
public function esta_logado() {
$sess = Sessao::instanciar();
return $sess->existe('usuario');
}
public function expulsar() {
header('location: controle.php?acao=sair');
}
public function logar($email, $senha) {
$pdo = new PDO('mysql:host=186.202.152.94;dbname=site1380138771', 'site1380138771','fl236972');
$sess = Sessao::instanciar();
$sql = "SELECT * FROM usuarios where usuarios.email ='{$email}' and usuarios.senha = '{$senha}'";
$stm = $pdo->query($sql);
if ($stm->rowCount() > 0) {
$dados = $stm->fetch(PDO::FETCH_ASSOC);
$usuario = new Usuario();
$usuario->setEmail($dados['email']);
$usuario->setId($dados['id']);
$usuario->setNome($dados['nome']);
$usuario->setSenha($dados['senha']);
$sess->set('usuario', $usuario);
return true;
}
else {
return false;
}
}
public function pegar_usuario() {
$sess = Sessao::instanciar();
if ($this->esta_logado()) {
$usuario = $sess->get('usuario');
return $usuario;
}
else {
return false;
}
}
}

 

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.