Witam borykam się od ostatniego czasu z sesjami w PHP.
Wszystko działa prawie idealnie do czasu jak loguje się wiele użytkowników,
Czasami zdarza się że gdy odświeżę stronę dostaję plik sesji kogoś innego i widzę jego login i status na serwisie (admin,zwykły użytkownik), po ponownym odświeżeniu wraca na moje pliki sesji i jest ok.
Czasami zdarza się że plik sesji tak jakby się zgubił a po parunastu odświeżeniach wraca na moje konto(sporadycznie na konto kogoś innego)
Logowanie robię tak:
<?php
session_start();
if($_POST['login'] AND $_POST['haslo']){
//podepnij klasę z komponentem
include('../class/Autentykacja.class.php');
//na podstawie klasy Autentykacja stworz zmienną obiektową ( „obiekt”) o nazwie $komponent
$komponentAutentykacji = new Autentykacja();
if ($komponentAutentykacji->test($_POST['login'],$_POST['haslo'])){//Wszystko jest OK
//echo "witaj w systemie";
$_SESSION['info'] = 'witaj w systemie';
$json['success'] = TRUE;
$json['login']= $_POST['login'];
$_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT'].strtolower($json['login']));
}else{//Jakiś bład
//echo "zly login lub haslo!";
//$_SESSION['info'] = 'zly login lub haslo!';
}
//Drukowanie do JS JSON
$json['info'] = $_SESSION['info'];
echo json_encode($json);
exit;
}
?>
A tak sprawdzenie czy zalogowany
<?php
session_start(); //sesje
if(isset($_SESSION['HTTP_USER_AGENT'])){
if($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER[ 'HTTP_USER_AGENT' ].strtolower($_SESSION['login']))){
header( 'Location: http://kinonet.pl/wyloguj.php' );
exit('Błąd sesji');
}
}else{
}
if ( isset( $_SESSION[ 'zalogowany' ] ) && ( $_SESSION[ 'zalogowany' ] == true ) ) {
//Treść dla zalogowanych
}else{
//strona zwykła
}
?>
Co może powodować takowe coś ??