-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsession_config.php
More file actions
54 lines (45 loc) · 1.7 KB
/
session_config.php
File metadata and controls
54 lines (45 loc) · 1.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
require_once "src/controller/VenueController.php";
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
$venueController = new VenueController();
$_SESSION['baseRoute'] = $_SERVER['HTTP_HOST'] == 'localhost' ? '/dwp/' : '/';
$initialVenue = $venueController->getVenueById(1);
isset($_SESSION['selectedVenueId']) ? '' : $venueController->selectVenue($initialVenue);
// Time interval for id regeneration
$interval = 30 * 60;
// Check if the user is logged in
if (isset($_SESSION['loggedInUser']['userId'])) {
// If session regeneration timestamp doesn't exist or the interval has passed
if (!isset($_SESSION['lastRegeneration']) || time() - $_SESSION['lastRegeneration'] >= $interval) {
regenerate_session_id_loggedin(); // Regenerate for logged-in users
}
} else {
// If user is not logged in, handle session regeneration similarly
if (!isset($_SESSION['lastRegeneration']) || time() - $_SESSION['lastRegeneration'] >= $interval) {
regenerate_session_id(); // Regenerate for guests
}
}
// Functions
function isLoggedIn() {
return isset($_SESSION['loggedInUser']['userId']);
}
function confirm_logged_in() {
if (!isLoggedIn()) {
header("Location: " . $_SESSION['baseRoute'] . "login");
exit;
}
}
function regenerate_session_id() {
// Regenerate the session ID
session_regenerate_id(true);
$_SESSION['lastRegeneration'] = time();
}
function regenerate_session_id_loggedin() {
// Regenerate the session ID
session_regenerate_id(true);
// Append the user ID to a custom session key
$_SESSION['session_userId'] = session_id() . "_" . $_SESSION['loggedInUser']['userId'];
$_SESSION['lastRegeneration'] = time();
}