Subversion Repositories ALCASAR

Rev

Rev 2108 | Rev 2137 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 2108 Rev 2134
Line 1... Line 1...
1
<?php
1
<?php
2
# $Id: status.php 2108 2017-01-06 08:50:25Z richard $
2
# $Id: status.php 2134 2017-03-12 19:53:15Z richard $
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 37... Line 37...
37
	exit("Erreur d'ouverture du fichier ".CONF_FILE);
37
	exit("Erreur d'ouverture du fichier ".CONF_FILE);
38
}
38
}
39
fclose($ouvre);
39
fclose($ouvre);
40
 
40
 
41
$organisme = $conf["ORGANISM"];
41
$organisme = $conf["ORGANISM"];
42
 
-
 
43
$remote_ip = ($_SERVER['REMOTE_ADDR']);
42
$remote_ip = preg_match('#^([0-9]{1,3}\.){3}[0-9]{1,3}$#', $_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : "";
44
$connection_history =  "";
43
$connection_history =  "";
45
$nb_connection_history = 3;
44
$nb_connection_history = 3;
46
 
45
 
47
//On récupère le nom de connexion de la session active. on attend que chilli ait mis à jour ses tables
46
// Wait for chilli (uptade its tables)
48
sleep (1);
47
sleep (1);
-
 
48
// Retrieve user info in tab $user[]
49
exec ("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
49
exec ("sudo /usr/sbin/chilli_query list | grep 'pass' | grep -Ew '($remote_ip)'" , $tab);
50
if(isset($tab[0]))
50
if(isset($tab[0]))
51
$user = explode (" ", $tab[0]);
51
$user = explode (" ", $tab[0]);
52
 
52
 
53
#### Affichage des 3 dernières connexions de $user[5]
53
#### Time conversion 
54
function secondsToDuration($seconds = null){
54
function secondsToDuration($seconds = null){
55
	if ($seconds == null) return "";
55
	if ($seconds == null) return "";
56
 
-
 
57
	$temp = $seconds % 3600;
56
	$temp = $seconds % 3600;
58
	$time[0] = ( $seconds - $temp ) / 3600 ;	// hours
57
	$time[0] = ( $seconds - $temp ) / 3600 ;	// hours
59
	$time[2] = $temp % 60 ;				// seconds
58
	$time[2] = $temp % 60 ;				// seconds
60
	$time[1] = ( $temp - $time[2] ) / 60;		// minutes
59
	$time[1] = ( $temp - $time[2] ) / 60;		// minutes
61
	
-
 
62
	return $time[0]." h ".$time[1]." m ".$time[2]." s";
60
	return $time[0]." h ".$time[1]." m ".$time[2]." s";
63
}
61
}
64
 
62
 
65
 
-
 
66
 
-
 
67
# Choice of language
63
# Choice of language
68
//reste quelques traductions à faire
64
//reste quelques traductions à faire
69
$Language = 'en';
65
$Language = 'en';
70
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
66
if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
71
  $Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
67
  $Langue = explode(",",$_SERVER['HTTP_ACCEPT_LANGUAGE']);
Line 262... Line 258...
262
	$l_connected 			= "logged"; 
258
	$l_connected 			= "logged"; 
263
	$l_a_connection			= "You have";
259
	$l_a_connection			= "You have";
264
	$l_a_connection_time		= "active connections on the network";
260
	$l_a_connection_time		= "active connections on the network";
265
}
261
}
266
 
262
 
267
// si on a pas d'accès à la bdd, la page s'affiche quand même correctement
-
 
268
if (isset($user[5])){
263
if (isset($user[5])){
-
 
264
// Retrieve the last connections
269
	if ((is_file("./acc/manager/lib/sql/drivers/mysql/functions.php"))&&(is_file("/etc/freeradius-web/config.php"))){
265
	if ((is_file("./acc/manager/lib/sql/drivers/mysql/functions.php"))&&(is_file("/etc/freeradius-web/config.php"))){
270
		include_once("/etc/freeradius-web/config.php");
266
		include_once("/etc/freeradius-web/config.php");
271
		include_once("./acc/manager/lib/sql/drivers/mysql/functions.php");
267
		include_once("./acc/manager/lib/sql/drivers/mysql/functions.php");
272
		
-
 
273
		$sql = "SELECT UserName, AcctStartTime, AcctStopTime, acctsessiontime FROM radacct WHERE UserName='$user[5]' ORDER BY AcctStartTime DESC LIMIT 0 , $nb_connection_history";
268
		$sql = "SELECT UserName, AcctStartTime, AcctStopTime, acctsessiontime FROM radacct WHERE UserName='$user[5]' ORDER BY AcctStartTime DESC LIMIT 0 , $nb_connection_history";
274
		$link = @da_sql_pconnect($config); // on affiche pas les erreurs
269
		$link = @da_sql_pconnect($config);
275
		
-
 
276
		if ($link){
270
		if ($link){
277
			$res = @da_sql_query($link,$config,$sql); // on affiche pas les erreurs
271
			$res = @da_sql_query($link,$config,$sql);
278
			
-
 
279
			if ($res){
272
			if ($res){
280
				$a_connection = ""; $a_connected=0; $connection_history.= "<ul>";
273
				$a_connection = ""; $a_connected=0; $connection_history.= "<ul>";
281
				while(($row = @da_sql_fetch_array($res,$config))){
274
				while(($row = @da_sql_fetch_array($res,$config))){
282
					$connected = "";
275
					$connected = "";
283
					$start_conn = date_create($row['acctstarttime']);
276
					$start_conn = date_create($row['acctstarttime']);
Line 293... Line 286...
293
				$connection_history.="</ul>";
286
				$connection_history.="</ul>";
294
				if ($a_connected > 1){
287
				if ($a_connected > 1){
295
					$a_connection = $l_a_connection." ".$a_connected." ".$l_a_connection_time; }
288
					$a_connection = $l_a_connection." ".$a_connected." ".$l_a_connection_time; }
296
			}
289
			}
297
		}
290
		}
-
 
291
// Retrieve first name & last name
-
 
292
//		$search = $login; $search_IN = 'username'; // is user in database ?
-
 
293
//		if (is_file("../lib/sql/find.php"))
-
 
294
//			include("../lib/sql/find.php");
-
 
295
//		if (isset ($found_users)) // user is in database
298
		
296
//		{
-
 
297
//			if (is_file("../lib/sql/user_info.php")) //retrieve user info (especialy $cn)
-
 
298
//				include("../lib/sql/user_info.php");
-
 
299
//		}
-
 
300
//		if (! isset ($cn)){ $cn='-';}
299
		//store in a file user @IP who can join this page.
301
//store the user @IP in a file (to test if he is still active).
300
		$filename='/var/tmp/havp/current_users.txt';
302
		$filename='/var/tmp/havp/current_users.txt';
301
		//change me avoid duplicate user @IP
303
		$change_me = 1; //avoid duplicate user @IP
302
		$change_me = 1;
-
 
303
		//check if filename exists
-
 
304
		if(file_exists($filename)){
304
		if(file_exists($filename)){
305
			$fichier = fopen($filename, "r");
305
			$fichier = fopen($filename, "r");
306
			$content = file($filename);
306
			$content = file($filename);
307
 
-
 
308
			//if file is empty, we put user @IP in it.
-
 
309
			if(empty($content))
307
			if(empty($content))
310
			{
308
			{
311
				file_put_contents($filename, $_SERVER['REMOTE_ADDR']);
309
				file_put_contents($filename, $_SERVER['REMOTE_ADDR']);
312
			}
310
			}
313
			else
311
			else
314
			{
312
			{
315
				//if we found duplicate IP, it will not write user @IP in filename (set change_me = 0)
313
				// if we found duplicate IP, we will not write user @IP (just set change_me = 0)
316
				foreach($content as $line){
314
				foreach($content as $line){
317
				        $line = preg_replace('/\s+/', '', $line);
315
				        $line = preg_replace('/\s+/', '', $line);
318
				        if($line == $_SERVER['REMOTE_ADDR'])
316
				        if($line == $_SERVER['REMOTE_ADDR'])
319
				        {
317
				        {
320
				                $change_me = 0;
318
				                $change_me = 0;
321
				        }
319
				        }
322
 
-
 
323
				}
320
				}
324
 
-
 
325
				//if user @IP does not exist, we will write it in filename
321
				// if user @IP does not exist, we write it
326
				if($change_me)
322
				if($change_me)
327
				{
323
				{
328
				        file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL , FILE_APPEND);
324
				        file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL , FILE_APPEND);
329
				}
325
				}
330
			}
326
			}
331
 
-
 
332
		}
327
		}
333
		else
328
		else
334
		{
329
		{
335
			//we create filename and we put user @IP in it.
330
			//we create filename and we write user @IP.
336
			file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL);
331
			file_put_contents($filename, $_SERVER['REMOTE_ADDR'].PHP_EOL);
337
		}
332
		}
338
		
-
 
339
		
-
 
340
	}
333
	}
341
}
334
}
342
?>
335
?>
343
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
336
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
344
<html lang="fr">
337
<html lang="fr">