Line 1... |
Line 1... |
1 |
<?php
|
1 |
<?php
|
2 |
# $Id: status.php 3026 2022-06-30 21:53:54Z rexy $
|
2 |
# $Id: status.php 3165 2024-01-10 10:34:50Z rexy $
|
3 |
#
|
3 |
#
|
4 |
# status.php for ALCASAR captive portal
|
4 |
# status.php for ALCASAR captive portal
|
5 |
# by steweb57 & Rexy
|
5 |
# by steweb57 & Rexy
|
6 |
#
|
6 |
#
|
7 |
/****************************************************************
|
7 |
/****************************************************************
|
Line 48... |
Line 48... |
48 |
$useHTTPS = ((isset($_SERVER['HTTPS'])) && (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] !== 'off'));
|
48 |
$useHTTPS = ((isset($_SERVER['HTTPS'])) && (!empty($_SERVER['HTTPS'])) && ($_SERVER['HTTPS'] !== 'off'));
|
49 |
$service_wifi4eu_status = ($conf['WIFI4EU'] === 'on');
|
49 |
$service_wifi4eu_status = ($conf['WIFI4EU'] === 'on');
|
50 |
$service_wifi4eu_code = $conf['WIFI4EU_CODE'];
|
50 |
$service_wifi4eu_code = $conf['WIFI4EU_CODE'];
|
51 |
$service_wifi4eu_server = 'https://collection.wifi4eu.ec.europa.eu/wifi4eu.min.js';
|
51 |
$service_wifi4eu_server = 'https://collection.wifi4eu.ec.europa.eu/wifi4eu.min.js';
|
52 |
|
52 |
|
- |
|
53 |
// Redirection if HTTPS needed and not used
|
- |
|
54 |
if (($conf['HTTPS_LOGIN'] === 'on') && (!$useHTTPS)) {
|
- |
|
55 |
header('HTTP/1.1 301 Moved Permanently');
|
- |
|
56 |
header('Location: https://'.$conf['HOSTNAME'].'.'.$conf['DOMAIN'].'/status.php');
|
- |
|
57 |
exit();
|
- |
|
58 |
}
|
- |
|
59 |
|
53 |
// Wait for chilli (update its tables)
|
60 |
// Wait for chilli (update its tables)
|
54 |
sleep(1); // TODO: wait after login only?
|
61 |
sleep(1); // TODO: wait after login only?
|
55 |
// Retrieve user info in tab $user[]
|
62 |
// Retrieve user info in tab $user[]
|
56 |
exec("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
|
63 |
exec("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
|
57 |
if (isset($tab[0])) {
|
64 |
if (isset($tab[0])) {
|
Line 66... |
Line 73... |
66 |
$time[1] = ($temp - $time[2]) / 60; // minutes
|
73 |
$time[1] = ($temp - $time[2]) / 60; // minutes
|
67 |
$time[0] = ($seconds - $temp) / 3600 ; // hours
|
74 |
$time[0] = ($seconds - $temp) / 3600 ; // hours
|
68 |
return $time[0].' h '.$time[1].' m '.$time[2].' s';
|
75 |
return $time[0].' h '.$time[1].' m '.$time[2].' s';
|
69 |
}
|
76 |
}
|
70 |
|
77 |
|
71 |
# Choice of language
|
78 |
// Choice of language
|
72 |
// TODO: reste quelques traductions à faire
|
- |
|
73 |
$Language = 'en';
|
79 |
$Language = 'en';
|
74 |
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
80 |
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
|
75 |
$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
81 |
$Langue = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
|
76 |
$Language = strtolower(substr(chop($Langue[0]), 0, 2));
|
82 |
$Language = strtolower(substr(chop($Langue[0]), 0, 2));
|
77 |
}
|
83 |
}
|
Line 321... |
Line 327... |
321 |
|
327 |
|
322 |
$filename = '/tmp/current_users.txt';
|
328 |
$filename = '/tmp/current_users.txt';
|
323 |
$user_needKeepOpen = (preg_match("/^$remote_ip:PERM/m", file_get_contents($filename)) === 0);
|
329 |
$user_needKeepOpen = (preg_match("/^$remote_ip:PERM/m", file_get_contents($filename)) === 0);
|
324 |
}
|
330 |
}
|
325 |
|
331 |
|
326 |
////////////////////////////////////////////////////////////////////////////////////////
|
- |
|
327 |
/////////////////////// TEST VARIABLES ///////////////////////
|
- |
|
328 |
//////////////////////////////////////////////////////////////
|
- |
|
329 |
//$nb_open_session = 2; // >2
|
- |
|
330 |
//$user_needKeepOpen = true; // true/false
|
- |
|
331 |
////////////////////////////////////////////////////////////////////////////////////////
|
- |
|
332 |
|
- |
|
333 |
// Cleaning the cache
|
332 |
// Cleaning the cache
|
334 |
header('Expires: Tue, 01 Jan 2000 00:00:00 GMT');
|
333 |
header('Expires: Tue, 01 Jan 2000 00:00:00 GMT');
|
335 |
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
334 |
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
|
336 |
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
|
335 |
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
|
337 |
header('Cache-Control: post-check=0, pre-check=0', false);
|
336 |
header('Cache-Control: post-check=0, pre-check=0', false);
|