You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

65 lines
1.5 KiB
PHP

<?
session_start();
function isLoggedIn() {
return isset($_SESSION['sessionId']) && ($_SESSION['sessionId'] == generateSessionId());
}
function verifyAuthorized() {
if(!isLoggedIn()) {
requestAuthFail("No valid session. Please <a href=\".\">re-login</a>.");
die(403);
}
}
function generateSessionId() {
$str = "sessionId";
$str .= $_SERVER['REMOTE_ADDR'];
$str .= date("Ymd");
$str .= (isset($_SESSION['householdId']) ? $_SESSION['householdId'] : rand());
return md5($str);
}
function logout() {
unset($_SESSION['sessionId']);
}
function login($householdId, $password) {
global $db;
initDatabaseConnection();
$resultSet = $db->query("SELECT * FROM household WHERE id = $householdId");
$household = $resultSet->fetchArray();
if($household) {
$testHash = createPasswordHash($password, $household['password_salt']);
if($household['password_hash'] == $testHash) {
$_SESSION['householdId'] = $householdId;
$_SESSION['sessionId'] = generateSessionId();
$_SESSION['householdName'] = $household['name'];
$_SESSION['householdCurrency'] = $household['currency'];
return true;
}
}
return false;
}
function updateHouseholdInfo($name, $currency) {
$_SESSION['householdName'] = $name;
$_SESSION['householdCurrency'] = $currency;
}
function getHouseholdId() {
return $_SESSION['householdId'];
}
function getHouseholdName() {
return $_SESSION['householdName'];
}
function getHouseholdCurrency() {
return $_SESSION['householdCurrency'];
}
?>