<?php
require_once($INC . "/log.inc.php");
require_once($INC . "/sql.inc.php");
require_once($INC . "/token.inc.php");
/*
* Add a session
*/
function rg_sess_add($db, $uid, $sid, $session_time)
{
rg_log("sess_add: uid=$uid, sid=$sid, session_time=$session_time.");
$ip = @$_SERVER['REMOTE_ADDR'];
$now = time();
$sql = "INSERT INTO sess (sid, uid, expire, session_time, ip)"
. " VALUES ('$sid', $uid"
. ", " . ($now + $session_time) . ", $session_time, '$ip')";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("\tCannot insert (" . rg_sql_error() . ")!");
return FALSE;
}
rg_sql_free_result($res);
return TRUE;
}
/*
* Returns if a session is still valid. Will return FALSE or uid
*/
function rg_sess_valid($db, $sid)
{
rg_log("sess_valid: sid=$sid...");
$uid = FALSE;
$e_sid = rg_sql_escape($db, $sid);
$sql = "SELECT uid, expire FROM sess WHERE sid = '$e_sid'";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("\tCannot select (" . rg_sql_error() . ")!");
return FALSE;
}
$row = rg_sql_fetch_array($res);
rg_sql_free_result($res);
if (isset($row['uid'])) {
$now = time();
if ($row['expire'] >= $now) {
$uid = $row['uid'];
rg_log("\tSession valid, uid=$uid, expire=+" . ($row['expire'] - $now));
} else {
rg_log("\tSession too old (" . ($now - $row['expire']) . "s)");
}
} else {
rg_log("\tSession not found!");
}
return $uid;
}
/*
* Refresh a session
*/
function rg_sess_update($db, $sid)
{
rg_log("sess_update: sid=$sid...");
$e_sid = rg_sql_escape($db, $sid);
$sql = "UPDATE sess SET expire = " . time() . " + session_time"
. " WHERE sid = '$e_sid'";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("\tCannot update (" . rg_sql_error() . ")!");
return FALSE;
}
rg_sql_free_result($res);
return TRUE;
}
/*
* Destroy session
*/
function rg_sess_destroy($db, $sid, &$rg_ui)
{
rg_log("sess_destroy: sid=$sid...");
$e_sid = rg_sql_escape($db, $sid);
$sql = "DELETE FROM sess WHERE sid = '$e_sid'";
$res = rg_sql_query($db, $sql);
if ($res === FALSE) {
rg_log("\tCannot delete (" . rg_sql_error() . ")!");
return FALSE;
}
rg_sql_free_result($res);
// Delete all tokens associated with this session
rg_token_delete($db, $sid, "");
$rg_ui = array();
$rg_ui['uid'] = 0;
$rg_ui['is_admin'] = 0;
return TRUE;
}
?>
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/rocketgit
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/rocketgit
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master