Witam, zrobiłem prosty panel administracyjny. Niestety użytkownicy (szczególnie ci z firefox) zgłaszają że są wylogowywani co chwila bez kliknięcia w 'wyloguj' (IMG:
http://forum.php.pl/style_emoticons/default/sad.gif) nie wiem czemu.
oto najważniejsze elementy tego systemu:
ble ble ble...
<body>
<?php //ustalanie danych sesyjnych
if (!isset($HTTP_SESSION_VARS['prezenter_online'])) $HTTP_SESSION_VARS['prezenter_online']=0; //jeśli nie wiadomo czy jest zalogowany, to zakładamy że nie jest if (isset($HTTP_GET_VARS['login']) && $HTTP_GET_VARS['login']==0) { //jeśli zmienna login ma wartość 0 to wylogowuje uzytkownika $HTTP_SESSION_VARS['prezenter_online']=0;
unset($HTTP_SESSION_VARS['prezenterid']); unset($HTTP_SESSION_VARS['prezentername']); unset($HTTP_SESSION_VARS['prezentertype']); }
else if (isset($HTTP_GET_VARS['login']) && $HTTP_GET_VARS['login']==1) { //zalogowanie użytkownika $login=$HTTP_POST_VARS['usernazwa'];
$password=$HTTP_POST_VARS['userhaslo'];
connectionadmin();
$zapytanie=mysql_query("SELECT * FROM users WHERE username='".$login."' AND userpassword='".$password."' AND activ=1"); //active to sprawdzenie czy uzytkownik aktywował konto, $password jest jeszcze kodowane ale ten fragment również usunałem. disconnectionadmin();
if(!$sprawdz){ //jeżeli SQL nie zwrócił wyników to uzytkownik dalej nie jest zalogowany
$HTTP_SESSION_VARS['prezenter_online']=0;
$wiadomosc['login']="<p style=\"color: red; text-align: center;\">Błędny login lub hasło</p>";
}
else{
while ($tab=mysql_fetch_assoc($zapytanie)){ //jeśli podał poprawne dane to zapamiętuje w sesji najważniejsze dane. $HTTP_SESSION_VARS['prezenterid']=$tab["id"];
$HTTP_SESSION_VARS['prezentername']=$tab["username"];
$HTTP_SESSION_VARS['prezentertype']=$tab["usertype"];
}
$prezentertype=explode("-", $HTTP_SESSION_VARS['prezentertype']); //a tutaj sprawdzenie czy dana osoba ma prawo oglądać tę stronę if($prezentertype[0]==2) $HTTP_SESSION_VARS['prezenter_online']=1;
else $wiadomosc['login']="<p style=\"color: red; text-align: center;\">Brak uprawnień</p>";
}
}
?>
ble ble ble
<?php if($HTTP_SESSION_VARS['prezenter_online']==1) { //sprawdzam czy user jest zalogowany, jeśli tak to może przeglądać treść strony ?>
ble ble ble - treść strony
<?php }
else { //sprawdzanie czy user jest online koniec!! ?>
<?php echo $wiadomosc['login']; //informacja o praku uprawnień lub złym haśle ?> ble ble ble formularz do logowania
<?php } //koniec okna logowania?>
</body>
</html>
w treści strony nie zmieniam ani razu wartości zmiennej 'prezenter_online' nie zachodzi równiez zamknięcie sesji nigdzie (IMG:
http://forum.php.pl/style_emoticons/default/sad.gif) . na moim komputerze na operze ani na ie nigdy nie nastąpiło wylogowanie ... na innych niestety takie rzeczy się trafiają... nie wiem już co robić :/ ciasteczka?