Skrypt ma za zadanie utworzyć nową sesję i w tej sesji może dowolnie zmieniać treść z bazy danych.
Taki mini panel admina.
Wykorzystuję AdoDB.
Mam tabelkę, w której utorzyłem m.in pole 'online'
Są dwie możliwości w online - Y albo N
plik systemy.php (do którego odnosi się plik cos.tpl, implantowany w każdym innym pliku)
wyszukuje wszystie rekordy z tabeli
tworzy nową sesję
nadaje danym sesyjnym wartośc danych wpisanych w POST
sprawdza czy dane sesyjne równają się danym z tabeli
jesli tak to tworzy nowe dane sesyjne z wartością prawidłowych danych
i zmienia status online na Y gdzie login i hasło równaja sie danym sesyjnym (prawidłowymi)
potem plik cos.tpl
sprawdza czy user z danych sesyjnych ma status Y
jesli tak to sprawdza i wyświetla nick i poziom autoryzacji usera
tutaj juz jest zawartość panelu admina
i jesli strone get równa sie logout to szuka usera w bazie zalogowanegio usera i ustawia mu status online N
niszczy sesje
----------------------
opis problemu:
po testach prawie wszystko działa...
sesje pamieta wszystko jest ok. tylko jak wylogowuję to ustawia status N, ale nie niszczy sesji
tzn. jak chcę zalogowac innego usera to ustawia status Y ale nie tworzy nowej sesji, bo porzednia jeszcze istnieje (sprawdzałem poprzez wyświetlanie session_id)
teraz podam pliki:
systemy.php:
<?php require_once ('includes/config.php'); $szukaj = $db -> Execute("SELECT * FROM sid"); $sid = $szukaj -> fields['sid']; $pass = $szukaj -> fields['pass']; $_SESSION['postsid'] = $_POST['sid']; $_SESSION['postpass'] = $_POST['pass']; if ($_SESSION['postsid'] == $sid && $_SESSION['postpass'] == $pass) { $_SESSION['sid'] = $_SESSION['postsid']; $_SESSION['pass'] = $_SESSION['postpass']; $zaloguj = $db -> Execute("UPDATE sid SET online = 'Y' WHERE sid = '".$_SESSION['sid']."' AND pass = '".$_SESSION['pass']."'"); } ?>
cos.tpl (tylko tresć php)
<?php $online = $db -> Execute("SELECT online FROM sid WHERE sid = ".$_SESSION['sid'].""); $zalogowany = $online -> fields['online']; if ($zalogowany == 'Y') { $ktojest = $db -> Execute("SELECT name FROM sid WHERE sid = ".$_SESSION['sid'].""); $kto = $ktojest -> fields['name']; $poziom = $db -> Execute("SELECT auth FROM sid WHERE sid = ".$_SESSION['sid'].""); $lvl = $poziom -> fields['auth']; if ($lvl == '1') { } if ($lvl == '1') { } if ($_GET['step'] == 'logout') { $wyloguj = $db -> Execute("UPDATE sid SET online = 'N' WHERE sid = '".$_SESSION['sid']."' AND pass = '".$_SESSION['pass']."'"); } } ?>