Jeżeli podczas zalogowania odczekuje > 5 sekund i nie klikne nic i daje F5 to mnei wywala fo formularza (CZYLI JEST OK), ale jak powtórnie dam F5 to znów jestem zalogowany.
..a druga sprawa, która mi się rzuciła w oczy to:
Jeżeli odrazu podczas zalogowania klikne ODŚWIEŻ (link) przed 5 sekundami, to wiadomo jestem dalej zalogowany i teraz jak poczekam wiecej niz 5 sekund i dam F5 i to mnie wywala do formularza, czyli jest git, jeszcze raz daje F5 i dalej jest formularz, więc jest super.
Później jeszcze spróbuje coś porobić, ale generalnie to już dobrze jest dużo.
Jakby co to kod:
Code: Zaznacz cały
<?php
session_start();
?>
<!DOCTYPE html>
<head>
<meta charset="utf-8" >
<title>Test</title>
</head>
<body>
<?php
if (isset($_GET['akcja']) && $_GET['akcja'] == 'wyloguj')
{
$_SESSION['zalogowany'] = 0;
session_destroy();
echo "Zostałeś wylogowany";
}
$ignore_post_msg = false;
if ($_SESSION['zalogowany'] == 1 && time()-$_SESSION['czas'] > 5)
{
$_SESSION['zalogowany'] = 0;
session_destroy();
echo "Wylogowało cię.";
$ignore_post_msg = true;
}
if (((isset($_POST['login']) && isset($_POST['haslo'])) || $_SESSION['zalogowany'] == 1) && !$ignore_post_msg)
{
if ((!empty($_POST['login']) && !empty($_POST['haslo'])) || $_SESSION['zalogowany'] == 1)
{
if ($_SESSION['zalogowany'] == 0)
{
$login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
$haslo = filter_var($_POST['haslo'], FILTER_SANITIZE_STRING);
}
if ((($login == "lukasz") && ($haslo == "dzik123")) || $_SESSION['zalogowany'] == 1)
{
if ($_SESSION['zalogowany'] == 0)
$_SESSION['login'] = $login;
echo "Zalogowany jako: <b>".$_SESSION['login']."</b><br />";
echo "<br />";
echo "PROFIL UŻYTKOWNIKA<br />";
echo "PRYWATNOŚĆ<br />";
echo "PREFERENCJE<br />";
echo "<a href='test.php'>Odśwież</a><br />";
echo "<a href='?akcja=wyloguj'>Wyloguj się</a>";
$_SESSION['zalogowany'] = 1;
$_SESSION['czas'] = time();
}
else
{
echo "Błędny login lub hasło.<br />";
echo "<a href='test.php'>Odśwież</a><br />";
echo "<a href='test.php'>Zaloguj się ponownie</a><br />";
}
}
else
{
echo "Login lub hasło nie zostało wpisane.<br />";
echo "<a href='test.php'>Zaloguj się ponownie</a><br />";
}
}
else
{
?>
<form action="test.php" method="post">
<div>Login: <input type="text" name="login" value="lukasz" size="10" maxlength="10" /></div>
<div>Hasło: <input type="password" name="haslo" value="dzik123" size="10" maxlength="10" /></div>
<div> <input type="submit" value="Login" /></div>
</form>
<?php
}
?>
</body>
</html>