x
<center>

<h2>
Novo fórum, http://www.LevelZone.ml !
</h2><meta http-equiv="Refresh" content="0;URL=http://www.KekoBrasil.cf" />
</center>
x
<center>

<h2>
Novo fórum, http://www.LevelZone.ml !
</h2><meta http-equiv="Refresh" content="0;URL=http://www.KekoBrasil.cf" />
</center>
Programm3rs
x


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Gravity
#1

Seg Set 01, 2014 8:39 pm


Administrador
Administrador
E aí Convidado, hoje eu vim trazer um sistema de login em PHP POO + PDO, lembrando que esse sistema é bem simples, só um exemplo pra você ter uma noção de POO(Programação orientada á objetos)

Vamos para o código!

Primeiro crie um banco de dados e importe este código no mesmo!
Código:

CREATE TABLE IF NOT EXISTS `usuarios` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `usuario` varchar(225) NOT NULL,
  `senha` varchar(225) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

INSERT INTO `usuarios` (`id`, `usuario`, `senha`) VALUES
(1, 'Administrador', 'senha001');

Já temos nosso banco de dados criado agora vamos ao index.php!
Código:

<?php
class Login{
   private $usuario;
   private $senha;
   private static $conexao;
   
   private static function obterInstancia(){
      if(!self::$conexao){
         try{
            self::$conexao = new PDO("mysql:host=localhost;dbname=login","root","SUASENHA");
         }catch(PDOException $e){
            exit("Não foi possível realizar a conexão com o banco de dados! {$e->getCode}");
         }
      }
      return self::$conexao;
   }
   
   public function logar($usuario, $senha){
      $stm = self::obterInstancia()->prepare('SELECT * FROM usuarios WHERE usuario=:usuario AND senha=:senha');
      $stm->bindValue(':usuario', $usuario, PDO::PARAM_STR);
      $stm->bindValue(':senha', $senha, PDO::PARAM_STR);
      $stm->execute();
      if($stm->rowCount() > 0){
         session_start();
         $_SESSION['chave'] = array('usuario' => $usuario,
                             'senha' => md5($senha),
                             'tempo' => time()
                             );
         session_write_close();
         return true;
      }
   }
}
$login = new Login();

if(isset($_POST['usuario']) && isset($_POST['senha'])){
   if($login->logar($_POST['usuario'], $_POST['senha'])){
      // Se o login for efetuado com sucesso redireciona pro painel..
      header('Location: home.php');
   }else{
      echo'Login/Senha errados\'s';
   }
}else if(isset($_POST['logar']) && empty($_POST['usuario']) || isset($_POST['logar']) && empty($_POST['senha'])){
   /*
    * Isso não era nessessário porque eu ja fiz a validação no html, porem o html pode
    * ser editado no browserentao isso aqui é só pra nao retornar uma tela branca.
    */
   echo 'Preencha todos os campos!';
}
?>
<!DOCTYPE html>
<html>
<head>
   <title>Login Simples em POO + PDO</title>
   <meta charset="UTF-8">
</head>
<body>
   <header>
      <h1> Login área </h1>
      <hr>
   </header>
   <section>
      <article>
         <h1>Login</h1>
         <form method="POST" autocomplete="OFF" action="">
            <input type="text" name="usuario" required placeholder="Usuário" /><br>
            <input type="password" name="senha" required placeholder="••••••••" /><br>
            <input type="submit" name="logar" value="Efetuar Login" />
         </form>
      </article>
   </section>
</body>
</html>

#PS: Não esqueça de configurar a conexão com o banco de dados, para facilitar procure por 'SUASENHA'(sem aspas).

home.php ~ Agora a autenticação do painel interno:
Código:

<?php
session_start();

// Authenticação básica.
if(!isset($_SESSION['chave'])){
   session_destroy();
   header('Location: index.php');
}
echo "Seja bem vindo {$_SESSION['chave']['usuario']}!";
?>

Parece um pouco mais complicado que o PHP Estruturado normal né? E realmente é!

-Mas Gravity, porquê usar o PHP Orientado a objetos se o PHP Estruturado é mais fácil?

Bom no PHP Orientado a Objetos um dos principais conceitos é não repetir linha de código, assim diminuindo o tempo gasto em projetos de médio a grande porte. Se você pensa em ser FreeLancer ou trabalhar com criação de sites no futuro, não deixe de aprender o PHP Orientado á Objetos, pois esse paradigma de programação irá te poupar muito tempo! Razz

Por hoje é só, deixe seu comentário para mim estar avaliando o feedback de vocês!

Return
#2

Qua Set 03, 2014 5:22 pm

Return
Aprendiz
Aprendiz
òtimo ;3

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos