<?php
session_start(); // rozpoczęcie sesji
// Pseudo baza danych użytkowników
$users = array( 1 => array('login' => 'user1', 'password' => password_hash('password1', PASSWORD_BCRYPT)),
array('login' => 'user2', 'password' => password_hash('password2', PASSWORD_BCRYPT)),
array('login' => 'user3', 'password' => password_hash('password3', PASSWORD_BCRYPT)));
// funkcja sprawdzająca, czy dane logowania są poprawne
function UserExist($login, $password){
global $users;
foreach($users as $id => $user){
if($login == $user['login']){
if(password_verify($password, $user['password'])){
return $id;
}else{
echo("<p>Ty próbować, źle zalogować, hasło nie dobre, bardzo nie ładnie. Proszę je wpisać teraz poprawnie.</p>");
return false;
}
}
}
return false;
}
if(isset($_POST['login']) && isset($_POST['password'])){ // sprawdzanie, czy dane do logowania zostały wysłane
$id = UserExist($_POST['login'], $_POST['password']); // pozyskiwanie id użytkownika lub false gdy hasło i login są niepoprawne
$_SESSION['id'] = $id ? $id : 0; // ustawianie id użytkownika
$_POST = array();
}else if(isset($_POST['logout'])){ // wylogowanie się
$_SESSION = array(); // usuwanie danych
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', 0);
}
session_destroy();
}
if(!isset($_SESSION['initial'])){
session_regenerate_id(true); // generowanie losowego id sesji
$_SESSION['initial'] = true;
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; // zapisywanie adresu ip
$_SESSION['nr'] = 1; // licznik odwiedzin na 1
$_SESSION['id'] = 0; // id użytkownika na 0
}else{
$_SESSION['nr'] += 1; // zwiększanie licznika odwiedzin
}
if(!$_SESSION['id']){ // jak id nie jest ustawione na wartość różną od 0 to trzeba wyświetlić formularz logowania
echo("<form action='Sesje.php' method='POST'>");
echo("<p>Login: <input type='text' name='login'/></p>");
echo("<p>Password: <input type='password' name='password'/></p>");
echo("<p><button type='submit'>Zaloguj</button></p>");
echo("</form>");
}else{ // w przeciwnym przypadku formularz wylogowania
echo("<form action='Sesje.php' method='POST'>");
echo("<input type='hidden' name='logout' value='logout' />");
echo("<p><button type='submit'>Wyloguj</button></p>");
echo("</form>");
}
if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR']){ // jak ip sesji się nie zgadza to kończymy zabawę
die('Niestety mój stary Jedi przyjacielu, nie podszyjesz się pod niego!');
}
if($_SESSION['id'] > 0){
echo("<p>Witaj: " . $users[$_SESSION['id']]['login'] . "</p>");
}
echo("Stronę nawiedziłeś już: " . $_SESSION['nr'] . " razy");
?>