meillo@0: meillo@7: */ meillo@0: class Loginsys { meillo@0: meillo@7: /// Consts meillo@0: meillo@7: /** meillo@7: * time in seconds till the session expires meillo@7: */ meillo@7: define('TIME_SESSION_EXPIRES', 1800); meillo@7: meillo@7: meillo@7: meillo@7: /// Constructors meillo@7: meillo@7: /** meillo@7: * starts the session meillo@7: * and puts an activity timestamp in it meillo@7: */ meillo@0: public function __construct() { meillo@0: session_start(); meillo@0: $this->heartbeat(); meillo@0: } meillo@0: meillo@0: meillo@0: meillo@0: meillo@7: /// Methods meillo@0: meillo@7: meillo@7: /** meillo@7: * trys to log in with the given login data meillo@7: * meillo@7: * @param $loginname username meillo@7: * @param $password_md5 md5 password hash meillo@7: */ meillo@0: public function login($loginname, $password_md5) { // login ------------------------------------ meillo@0: $rowuser = mysql_fetch_array(mysql_query("select * from ". DB_PREFIX ."User where loginname='$loginname' and password='$password_md5' ")); meillo@0: if (mysql_affected_rows() == 1) { // valid login meillo@0: $_SESSION[login][id] = $rowuser[id]; meillo@0: $_SESSION[login][loginname] = $loginname; meillo@0: $_SESSION[login][logintime] = time(); meillo@0: } meillo@0: } meillo@0: meillo@0: meillo@7: /** meillo@7: * logs the user out meillo@7: */ meillo@0: public function logout() { // logout ------------------------------------------------------------ meillo@0: unset($_SESSION[login]); meillo@0: } meillo@0: meillo@0: meillo@7: /** meillo@7: * proves if the user is logged in and if he wan't to long inactive meillo@7: * meillo@7: * @return bool 'true' if user is logged in, else 'false' meillo@7: */ meillo@0: public function loggedIn() { // return login-status --------------------------------------------- meillo@0: return (isset($_SESSION[login][id]) && $_SESSION[login][logintime] > time()-TIME_SESSION_EXPIRES); meillo@0: } meillo@0: meillo@0: meillo@7: /** meillo@7: * writes the current timestamp into the session meillo@7: * this is relevant for the time of inactivity meillo@7: */ meillo@0: public function heartbeat() { meillo@0: if ($this->loggedIn()) { meillo@0: $_SESSION[login][logintime] = time(); meillo@0: } meillo@0: } meillo@0: meillo@0: meillo@0: meillo@7: /// Getter and Setter meillo@0: meillo@7: meillo@7: /** meillo@7: * @return user id meillo@7: */ meillo@0: public function getUserId() { meillo@0: return $_SESSION[login][id]; meillo@0: } meillo@0: meillo@7: /** meillo@7: * @return user name meillo@7: */ meillo@0: public function getLoginname() { meillo@0: return $_SESSION[login][loginname]; meillo@0: } meillo@0: meillo@0: } meillo@0: meillo@0: meillo@0: ?>