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!
Já temos nosso banco de dados criado agora vamos ao index.php!
#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:
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!
Por hoje é só, deixe seu comentário para mim estar avaliando o feedback de vocês!
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!
Por hoje é só, deixe seu comentário para mim estar avaliando o feedback de vocês!