/** * @param $token * @param null $user_agent_string * @param string $intent save, kill or Update session * @param stringuser_id * @return bool success */ public static function alter($token, $user_agent_string = null, $intent, $user_id = null) { $sid = filter_var($token, FILTER_SANITIZE_STRING); $uas = filter_var($user_agent_string, FILTER_SANITIZE_STRING); $uid = Helper::word($user_id); $status = false; $sql = ''; switch ($intent) { case 'save': $sql = 'INSERT INTO session (user_id, token, user_agent_string, expires) VALUES (:uid, :sid , :uas, DATE_ADD(NOW(), INTERVAL 1 MINUTE ))'; setcookie('_ut35', $sid, COOKIE_LIFE); $_SESSION['uid'] = $user_id; break; case 'kill': setcookie('_ut35', null, time() - 1000); $sql = 'DELETE FROM session WHERE token = :sid AND user_agent_string = :uas'; break; case 'update': $sql = 'UPDATE session SET token = :sid, expires = DATE_ADD(NOW(), INTERVAL 2 MINUTE) WHERE token = :sid AND user_agent_string = :uas'; // $_SESSION['uid'] = $user_id; setcookie('_ut35', $sid, COOKIE_LIFE); break; default: break; } try { $dbh = DBWorker::connect(); $stmt = $dbh->prepare($sql); $stmt->bindParam(":sid", $sid, PDO::PARAM_STR); $stmt->bindParam(":uas", $uas, PDO::PARAM_STR); if ($intent == 'save') { $stmt->bindParam(':uid', $uid, PDO::PARAM_STR); } $stmt->execute(); $status = $stmt->rowCount() > 0; DBWorker::disconnect($dbh); } catch (Exception $ex) { die($ex->getMessage()); } return $status; }