Po zalogowaniu niestety zrywa się sesja.
Klasa sesji(Session.php):
<? class Session{ public function __construct(){ $_SESSION['logged']=false; } return true; } public function __destruct(){ } public function logoff($action){ if($action=='wyloguj'){ $_SESSION['logged']=false; } } public function csession(){ echo "<script type=\"text/javascript\">window.setTimeout(\"window.location.replace('index.php');\", 1);</script>"; $this->logoff('wyloguj'); } } public function crequire($what){ $in=get_included_files(); foreach ($in as $filename) { if ($filename==$what){ return true; } else{ return false; } } } public function cpermission($uname){ if(!$this->crequire('Mysql.php')){ require('Mysql.php'); } $row=$mysql->show('SELECT t.* FROM users u INNER JOIN utype t ON u.utype = t.id WHERE u.login = \''.$uname.'\''); return $row['name']; } public function lapply($logged, $login, $ip){ $_SESSION['logged']=$logged; $_SESSION['login']=$login; $_SESSION['ip']=$ip; } public function attset($att, $what){ $_SESSION[$att]=$what; return true; } public function attget($what){ return $_SESSION[$what]; } public function attisset($what){ return true; } else{ return false; } } } ?>
index.php
<? require('../class/Session.php'); require('../smarty/Smarty.class.php'); $session= new Session(); $smarty = new Smarty(); $smarty->setTemplateDir('../templates'); $smarty->setCompileDir('../smarty/templates_c'); $smarty->setCacheDir('../smarty/cache'); $smarty->setConfigDir('../smarty/configs'); if ($session->attisset('logged')==false || $session->attget('logged')==false){ $_SESSION['logged']=false; $smarty->assign('what', 'Podaj login'); $smarty->display('admin_login.tpl'); } } else if ($session->attisset('logged') && $session->attget('logged')==true){ /*if (!$session->attisset('logged')){ session_regenerate_id(); $session->attset('inicjuj', true); $session->attset('ip', $_SERVER['REMOTE_ADDR']); } if($session->attget('ip') != $_SERVER['REMOTE_ADDR']){ die('Proba przejecia sesji udaremniona!'); } */ include $_GET['page'].'.php'; } else{ } } else{ include 'aktualnosci.php'; } } require('../class/Mysql.php'); $row=$mysql->show('SELECT time FROM users WHERE login = \''.$_POST['login'].'\''); $result=$mysql->querry("SELECT * FROM users WHERE login = '" . $_POST['login'] . "' AND pass = '". $pass . "'"); //echo'wynikow jest wiecej niz 0<br>'; $session->lapply(true, $_POST['login'], $_SERVER['REMOTE_ADDR']); echo "<script type=\"text/javascript\"> window.setTimeout(\"window.location.replace('index.php?page=aktualnosci');\", 1); </script>"; } else { $smarty->assign('what', 'Niepoprwane dane logowania'); $smarty->display('admin_login.tpl'); } } ?>
Dodam iż klasa Mysql działa poprawnie, strona aktualnosci.php praktycznie nic nie zawiera oprócz przycisku wylogowania. O ile dobrze kojarzę to po przeładowaniu zrywa się sesja i tworzy nowa a ja chciałbym ją kontynuować. Macie jakieś pomysły?