Witam, tworzę panel i chciałbym do niego dodać logowanie dla administratora. Chciałbym, aby to logowanie działało bez udziału bazy danych, gdyż będzie to tylko jeden użytkownik.
Stworzyłem taki panel logowania:
<!DOCTYPE html>
<html>
<head>
<title>Logowanie do panelu administratora</title>
<!-- Style -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="main.css">
</head>
<body>
<div class="container-fluid">
<div class="row justify-content-center">
<div class="logowanie col-md-5">
<div class="card border-dark">
<div class="card-header">Logowanie</div>
<form action="login.php" method="POST">
<div class="form-group m-3">
<label>Login:</label>
<input class="w-75" type="text" name="login" placeholder="Podaj login">
</div>
<div class="form-group m-3">
<label>Hasło:</label>
<input class="w-75" type="password" name="password" placeholder="Podaj hasło">
</div>
<div class="form-group m-3">
<button type="submit" class="btn btn-primary btn-lg">Zaloguj sie!</button>
</div>
</form>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous">
</script>
</body>
</html>
Pastebin panelu: https://pastebin.com/d6uYYZ4a
Wykonałem także taki system logowania złożony na kilka plików takich jak:
- login.php
- haslo.php
Zawartość login oraz haslo:
- login:
<?php
require_once("dane_logowanie.php");
session_start();
if (!empty($_POST['login']) && !empty($_POST['password']))
{
if ($_POST['login'] == USERNAME)
{
if (password_verify($_POST['password'], PASSWORD))
{
$_SESSION['user'] = htmlspecialchars($_POST['login']);
}
}
}
header('Location: http://localhost/panel/szybki-dostep.php');
- haslo:
<?php
return [
'login' = 'admin',
'pass' => '$2y$10$XOKNwXKx61xQBxcrDV5T6elaggk1pMPHKMSXEaDTEcsS.aX1RF.by'
];
Problem na jaki napotkałem to taki iż chciałbym dodać do panelu funkcjonalność sesji, jednak nie wiem jak się za to zabrać.
Czy w taki sposób, aby na każdej stronie przedłużać użytkownikowi tą sesje funkcją session_start() oraz sprawdzać czy jest zalogowany? jeśli nie to zastosowanie funkcji header, aby przekierować go do strony z logowaniem?
Druga sprawa to taka, że zrobiłem panel związany z wylogowaniem, na każdej stronie chcę umieścić przycisk wyloguj, który będzie kierował użytkownika do specjalnej strony w której będzie dopiero potwierdzenie wylogowania. Jednak nie wiem do końca jak mogę oskryptować ten przycisk pod kątem wylogowania.
Przeglądając wiele tutoriali napotkałem się na dość prosty skrypt zakończenia sesji(wylogowania):
<?php
session_start();
unset($_SESSION['user']);
session_destroy();
header("Location: http://localhost/panel/index.php");
Przerobiłem go pod swoje potrzeby odnośnie lokalizacji, jednak nie wiem jak mogę go dodać do funkcjonalności.
Panel wylogowania:
<!DOCTYPE html>
<html>
<head>
<title>Wylogowanie się z panelu administratora</title>
<!-- Style -->
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="main.css">
</head>
<body>
<div class="container-fluid">
<div class="row justify-content-center">
<div class="wylogowanie">
<div class="card">
<div class="card-header">
Panel administratora - wylogowanie
</div>
<div class="card-body">
<h5 class="card-title">Potwierdzenie wylogowania</h5>
<p class="card-text">Czy na pewno chcesz wylogować sie z panelu? Jeśli tak wciśnij przycisk wyloguj. Jeśli nie wciśnij przycisk powrót.</p>
<a name="buttonWylogujPanel" class="btn btn-success">Wyloguj</a>
<a href="szybki-dostep.php" class="btn btn-primary">Wróć do panelu!</a>
</div>
</div>
</div>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/js/bootstrap.min.js" integrity="sha384-w1Q4orYjBQndcko6MimVbzY0tgp4pWB4lZ7lr30WKz0vr/aWKhXdBNmNb5D92v7s" crossorigin="anonymous">
</script>
</body>
</html>
Pastebin panelu:
https://pastebin.com/J033DbmC
Bardzo proszę o pomoc jakbym mógł rozwiązać mój problem.