Files
2026-06-17 15:46:26 +02:00

78 lines
2.0 KiB
PHP

<?php
if(!isset($connected) || !$connected)
{
echo "Session requires a database connection";
exit;
}
if(!isSession())
{
logout("You are not logged in");
}
else
{
$session_id = getSession();
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT user.id AS uid, session.id AS sid, `time`, `ip`, `username`, `email`, `remember`FROM `session`, `user` WHERE session.user=user.id AND session.session='$session_id'";
$query = ExecQuery($mysqli, $sql);
if($query->num_rows<1){
logout("You are not logged in");
}
elseif($query->num_rows == 1){
$result = $query->fetch_assoc();
$userid = $result['uid'];
$remember = $result['remember'];
$username = $result['username'];
$email = $result['email'];
$sessionid = $result['sid'];
$session_time = $result['time'];
$session_time = date_create($session_time);
//Check if IP has changed
if($remember != 1 && $result['ip'] != $ip)
{
logout("Your IP address has changed, please login again");
}
//Load device
$sql = "SELECT device.id AS id, device.dev_id AS dev_id FROM `session`, `device` WHERE session.dev_id = device.id AND session.id=$sessionid";
$query = ExecQuery($mysqli, $sql);
if($query->num_rows < 1)
{
$deviceid = 0;
$device = "Not selected";
}
else
{
$result = $query->fetch_assoc();
$deviceid = $result['id'];
$device = $result['dev_id'];
}
$curr_time = date('Y-m-d H:i:s'); //, strtotime(date('Y-m-d H:i:s') .' +7 hour'));
$curr_time = date_create($curr_time);
$interval = date_diff($session_time, $curr_time, false);
$interval = $interval->format('%H:%I:%S');
if(strtotime($interval) < strtotime(SESSION_TIME) || $remember == 1){
$sql = "UPDATE `session` SET `time`=NOW() WHERE `id`='$sessionid'";
ExecQuery($mysqli, $sql);
$loggedin = true;
}
else{
logout("Your session has expired, please login again");
}
}
else{
logout("An error has occured");
}
}
?>