Poniżej są trzy pliki:
-
index.php
- wyświetla guzki w zależności od tego, czy ktoś jest zalogowany, czy też nie i to jest jego jedyna rola. Jest to również jedyny plik, który wyświetla html.
-
login.php
- jeżeli użytkownik nie jest już zalogowany, to go loguje i przekierowuje na index.php
. Nie wyświetla html'a.
-
logout.php
- jeżeli użytkownik jest zalogowany, to usuwa wartości w tablicy $_SESSION
, które trzymają informację o tym czy użytkownik jest zalogowany i przekierowuje na index.php
. Nie wyświetla html'a.
<?php
// index.php
session_start();
$logged_in = isset($_SESSION['logged_in']) ? $_SESSION['logged_in'] : false;
$user = null;
if ($logged_in) {
$user = $_SESSION['user'];
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Welcome</title>
</head>
<body>
<?php if($logged_in): ?>
Zalogowany jako: <?= $user['first_name'] . " " . $user["last_name"]; ?> <br>
<a href="logout.php">Wyloguj</a>
<?php else: ?>
<a href="login.php">Zaloguj</a>
<?php endif; ?>
</body>
</html>
<?php
// login.php
session_start();
$logged_in = isset($_SESSION['logged_in']) ? $_SESSION['logged_in'] : false;
if (!$logged_in) {
// normalnie w tym miejscu byś sprawdzał
// login i hasło oraz pobieral usera z bazy,
// ale nasz skrypt jest prosty, więc się tym nie przejmujemy :)
$_SESSION['user'] = [
'first_name' => 'Kamil',
'last_name' => 'Latosiński'
];
$_SESSION['logged_in'] = true;
}
// redirect to homepage
header('Location: /');
<?php
// logout.php
session_start();
$logged_in = isset($_SESSION['logged_in']) ? $_SESSION['logged_in'] : false;
if ($logged_in) {
unset($_SESSION['logged_in'], $_SESSION['user']);
}
// redirect to homepage
header('Location: /');
Jeżeli masz PHP dodany do PATH, to możesz użyć wbudowanego serwera PHP. Wchodzisz do katalogu, gdzie umieściłeś plik index.php
i robisz:
php -S localhost:4000
Teraz otwierasz przeglądarkę, wchodzisz pod adres localhost:4000
i voilà.