Rozbudowa naszego helpera sesji – dodanie metody pozwalającej liczyć ilość aktywnych sesji. Do dzieła.
Piszemy metodę:
<?php
class Session
{
//(...)
public static function sessionsCount(){
$session_path = session_save_path();
$handle = opendir($session_path);
$sessions = 0;
while (($file = readdir($handle)) != FALSE) {
echo $file;
echo "<br>";
}
return $sessions;
}
}
Session::start();
echo Session::sessionsCount(); "<br>";
//.
//..
//sth.tmp
//sthelse.tmp
//sess_07902a5t3k4iak0p17tsbqmh8g
//sess_0jbohnsfhvmnfqqlpvea2314nn
//sess_0o61v55mps5invdjnhlvm1l4if
//sess_0p3jho2botalfvm4c2kdf690df
//sess_0q8tiirsdu4upsjjs32o4v14it
Jak widać znajdują się tam pliki różne. Sesyjne możemy rozpoznać po nazwie rozpoczynającej się od sess… Utnijmy sobie foldery:
public static function sessionsCount(){
$session_path = session_save_path();
$handle = opendir($session_path);
$sessions = 0;
while (($file = readdir($handle)) != FALSE) {
if(in_array($file, ['.', '..']))
continue;
echo $file;
echo "<br>";
}
return $sessions;
}
//sth.tmp
//sthelse.tmp
//sess_07902a5t3k4iak0p17tsbqmh8g
//sess_0jbohnsfhvmnfqqlpvea2314nn
//sess_0o61v55mps5invdjnhlvm1l4if
//sess_0p3jho2botalfvm4c2kdf690df
//sess_0q8tiirsdu4upsjjs32o4v14it
Teraz utnijmy pliki, które nie dotyczą sesji:
$session_path = session_save_path();
$handle = opendir($session_path);
$sessions = 0;
while (($file = readdir($handle)) != FALSE) {
if(in_array($file, ['.', '..']))
continue;
if(!preg_match("/^sess/", $file))
continue;
echo $file;
echo "<br>";
}
return $sessions;
}
Teraz aktualizujmy ilość sesji oraz wyświetlajmy pełną ścieżkę:
public static function sessionsCount(){
$session_path = session_save_path();
$handle = opendir($session_path);
$sessions = 0;
while (($file = readdir($handle)) != FALSE) {
if(in_array($file, ['.', '..']))
continue;
if(!preg_match("/^sess/", $file))
continue;
$sessions++;
$file_path = "{$session_path}/{$file}";
echo $file_path . "<br>";
}
return $sessions;
}
//C:\xampp\tmp/sess_07902a5t3k4iak0p17tsbqmh8g
//C:\xampp\tmp/sess_0jbohnsfhvmnfqqlpvea2314nn
//C:\xampp\tmp/sess_0o61v55mps5invdjnhlvm1l4if
//C:\xampp\tmp/sess_0p3jho2botalfvm4c2kdf690df
//C:\xampp\tmp/sess_0q8tiirsdu4upsjjs32o4v14it
Ta ścieżka nam do niczego nie jest potrzebna, potrzebna dopiero będzie w następnym odcinku, do liczenia sesji aktywnych przez ostatnie 5 minut:
public static function sessionsCount(){
$session_path = session_save_path();
$handle = opendir($session_path);
$sessions = 0;
while (($file = readdir($handle)) != FALSE) {
if(in_array($file, ['.', '..']))
continue;
if(!preg_match("/^sess/", $file))
continue;
$sessions++;
}
return $sessions;
}
Klasę będziemy rozbudowywać.