Skip to content

Instantly share code, notes, and snippets.

@uchoamaster
Created September 16, 2025 22:59
Show Gist options
  • Select an option

  • Save uchoamaster/bdf8622cdbca9c5ab35890cf0af91429 to your computer and use it in GitHub Desktop.

Select an option

Save uchoamaster/bdf8622cdbca9c5ab35890cf0af91429 to your computer and use it in GitHub Desktop.
Login com Session PHP e MYSQL
<?php
// Inicia a sessão para carregar dados do arquivo de sessão via cookie
session_start();
// Verifica se o usuário está logado
if (!isset($_SESSION['user'])) {
// Se não, redireciona para login
header('Location: login.php');
exit();
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Dashboard</title>
</head>
<body>
<h1>Bem-vindo, <?php echo $_SESSION['user']; ?>!</h1>
<p>Você está logado. Aqui vai o conteúdo protegido do sistema.</p>
<a href="logout.php">Sair</a>
</body>
</html>
<?php
session_start();
// Configuração do banco
$host = 'localhost';
$user = 'root'; // Ajuste conforme seu ambiente
$password = ''; // Ajuste conforme seu ambiente
$dbname = 'login_system';
// Conexão com o banco
$conn = new mysqli($host, $user, $password, $dbname);
if ($conn->connect_error) {
die("Conexão falhou: " . $conn->connect_error);
}
// Processa o formulário
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = $conn->real_escape_string($_POST['username']);
$password = $_POST['password'];
// Busca usuário no banco
$sql = "SELECT username, password FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
// Verifica a senha
if (password_verify($password, $row['password'])) {
$_SESSION['user'] = $row['username'];
header('Location: dashboard.php');
exit();
} else {
$error = 'Usuário ou senha inválidos!';
}
} else {
$error = 'Usuário ou senha inválidos!';
}
}
$conn->close();
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<?php if (isset($error)) echo "<p style='color:red;'>$error</p>"; ?>
<form method="POST" action="">
<label>Usuário:</label><br>
<input type="text" name="username" required><br><br>
<label>Senha:</label><br>
<input type="password" name="password" required><br><br>
<button type="submit">Entrar</button>
</form>
</body>
</html>
<?php
// Inicia a sessão para acessá-la
session_start();
// Limpa os dados da sessão
session_unset();
// Destrói a sessão (remove o arquivo no servidor)
session_destroy();
// Expira o cookie (opcional, mas recomendado)
setcookie('PHPSESSID', '', time() - 3600, '/');
// Redireciona para login
header('Location: login.php');
exit();
?>
<?php
$host = 'localhost';
$user = 'root'; // Ajuste conforme seu ambiente
$password = ''; // Ajuste conforme seu ambiente
$dbname = 'login_system';
// Conexão com o MySQL
$conn = new mysqli($host, $user, $password);
// Verifica conexão
if ($conn->connect_error) {
die("Conexão falhou: " . $conn->connect_error);
}
// Cria o banco de dados
$sql = "CREATE DATABASE IF NOT EXISTS $dbname";
if ($conn->query($sql) === TRUE) {
echo "Banco de dados criado com sucesso.<br>";
} else {
die("Erro ao criar banco de dados: " . $conn->error);
}
// Seleciona o banco
$conn->select_db($dbname);
// Cria a tabela users
$sql = "CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
)";
if ($conn->query($sql) === TRUE) {
echo "Tabela users criada com sucesso.<br>";
} else {
die("Erro ao criar tabela: " . $conn->error);
}
// Insere usuário de teste
$username = 'admin';
$password = password_hash('12345', PASSWORD_DEFAULT); // Hash da senha
$sql = "INSERT IGNORE INTO users (username, password) VALUES ('$username', '$password')";
if ($conn->query($sql) === TRUE) {
echo "Usuário de teste (admin/12345) criado com sucesso.<br>";
} else {
die("Erro ao inserir usuário: " . $conn->error);
}
$conn->close();
echo "Configuração concluída! Acesse login.php.";
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment