Mam taki problem
Wszystko testowane jest na localhoscie na 1 komputerze.
Jest panel użytkownika i panel administracyjny. Najpierw loguje sie na administratora,
a następnie się wylogowuje
(nie wyłączając przeglądarki), potem loguje się na uzytkownika
i tu pojawia sie problem.
Jeżeli w pasku teraz wpisze sciezke do strony admina(bedąc na koncie
uzytkownika), nastepuje włączenie tej strony i wyswietla mi ze jest na nej administrator ( I co ciekawe moge tylko chodzic po tych stronach admina po ktorych wczesmniej chodziłem bedac zalogowany jako admin i oczywiscie po stronach przeznaczonych dla klienta, jezeli wejde na jakomś strone ktorej wczesniej mie załączałem przerzuca mnie do strony logowania)
(czego to jest przyczyna, sesji czy błąd programistyczny, niby usuwam wszystko z sesji, nie wiem pozostaja jakies pozostałości w buforze)
Natomiast jezeli wyłacze przegladarke i uruchomie ponownie nie mam takiego problemu (konfliktu kont),
wtedy wszystko działa dobrze i uzytkownika przerzuca do strony z logowaniem
Plik admin
<?php require_once("../include/session.php"); ?>
<?php fnk_potwierdz_logowanie_pracownik() ?>
...
Plik klient
<?php require_once("include/session.php"); ?>
<?php fnk_potwierdz_logowanie() ?>
...
Plik login
<?php require_once("include/session.php"); ?>
<?php require_once("include/polacz_z_baza.php"); ?>
if (fnk_zalogowany()) {
if (strcmp($_SESSION['status'], 'klient') == 0) {fnk_przejdz_do("klient.php");}
if (strcmp($_SESSION['status'], 'pracownik') == 0) {fnk_przejdz_do("admin.php");}
sprawdzenie hasła i loginu
Jesli ok to
$_SESSION['id_uzytk'] = $znaleziony_uzytk['id_uzytkownika'];
$_SESSION['login'] = $znaleziony_uzytk['login'];
$_SESSION['status'] = $znaleziony_uzytk['status']; // status jest klient lub pracownik
if($znaleziony_uzytk['status'] == "klient") {fnk_przejdz_do("klient.php");}
if($znaleziony_uzytk['status'] == "pracownik") {fnk_przejdz_do("admin.php");}
}
Plik sesji
<?php
require_once("funkcje.php");
function fnk_zalogowany() {
return isset($_SESSION['id_uzytk']); return isset($_SESSION['login']); return isset($_SESSION['status']); }
function fnk_potwierdz_logowanie_pracownik() {
if (!fnk_zalogowany()) {
fnk_przejdz_do("login.php");
}
if (strcmp($_SESSION['status'], 'pracownik') <>0) { fnk_przejdz_do("login.php");
}
}
function fnk_potwierdz_logowanie() {
if (!fnk_zalogowany()) {
fnk_przejdz_do("login.php");
}
if (strcmp($_SESSION['status'], 'klient') <>0) { fnk_przejdz_do("login.php");
}
}
?>
Plik logout
<?php
}
//Zniszcz sesje
fnk_przejdz_do("login.php?logout=1");
?>
<?php
function fnk_przejdz_do($location = NULL) {
if ($location != NULL) {
header('Content-Type: text/html; charset=UTF-8'); header("Location: {$location}"); }
}
?>