[PHP] Sprawdzanie czy użytkownik jest zalogowany


(Michalmatma32) #1

Witam.

Napisałem stronę do logowania w php.

<?php
    if($_POST['haslowpisane'] == "kangur")
    {
		header( 'Location: strona.php' ) ;
    }
?>
<html>
<head>
<title>Logowanie</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div>
<form id="password" method="post">
	<input name="haslowpisane" type="password">
	<br>
	<input type="submit" value="Zaloguj">
</form>
</div>
</body>
</html>

Sprawdzam tylko hasło, bo chcem mieć tylko jednego użytkownika. Mam pytanie, jak sprawdzić na strona.php czy ktoś kto wchodzi jest zalogowany? Myślałem o sprawdzeniu ostatniego wpisu w historii, ale ktoś mógł po prostu być wcześniej na stronie logowania i wtedy to nie zadziała.

P.S. Jestem początkujący w php i słyszałem coś o sesjach, ale nie wiem jak to wykorzystać.


(toboneq) #2

Najprościej jak się da:

<?php
   session_start();
   if($_SESSION['zalogowany'] == true AND $_SESSION['pass'] == "kangur")
   {
    header('Location: strona.php');
} else if($_POST['haslowpisane'] == "kangur")
    {
	  $_SESSION['zalogowany'] = true;
          $_SESSION['pass'] = "kangur";	
          header( 'Location: strona.php' ) ;
    }
?>
<html>
<head>
<title>Logowanie</title>
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
<div>
<form id="password" method="post">
	<input name="haslowpisane" type="password">
	<br>
	<input type="submit" value="Zaloguj">
</form>
</div>
</body>
</html>

(Michalmatma32) #3

Dzięki, tylko jak dałem ten kod na index.php (strona z logowaniem), a do strona.php dodałem:

<?php
	if($_SESSION['zalogowany'] == true OR $_SESSION['pass'] != "kangur")
   {
    header('Location: index.php');
   }
?>

to strony się zapentlają. W kółko przekierowują się na wzajem. I jeszcze jaki będzie kod do wylogowania?


(toboneq) #4
<?php
  
     session_start();
	if($_SESSION['zalogowany'] != true OR $_SESSION['pass'] != "kangur")
   {
    header('Location: index.php');
   }
?>

to do  daj do strona.php

 

a wylogowywanie

<?php
session_start();
 if($_SESSION['zalogowany'] != true OR $_SESSION['pass'] != "kangur") {
 echo "Nie byłes zalogowany!";
}

 else{
 unset($_SESSION['zalogowany']);
 unset($_SESSION['pass']);
echo "Wylogowanie prawidlowe!";
}

session_destroy();
?>

(Michalmatma32) #5

Dzięki, działa.

P.S. Sorry, że tyle się nie odzywałem, ale miałem problemy z serwerem i nie miałem jak tego przetestować.