PHP code example of timefrontiers / php-session

1. Go to this page and download the library: Download timefrontiers/php-session library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

timefrontiers / php-session example snippets


use TimeFrontiers\Session;
use TimeFrontiers\AccessRank;

// Start session
$session = new Session();

// Check if logged in
if (!$session->isLoggedIn()) {
  // Show login form
}

// Access user info
echo $session->id();           // e.g. 1
echo $session->name;           // uniqueid e.g. "01234567890"
echo $session->access_rank();  // 4 (MODERATOR)
echo $session->access_group(); // AccessGroup::MODERATOR

// Full user object
$user = $session->user();
echo $user->surname;

// Geolocation
$loc = $session->location();
echo $loc?->country;

// User object from your database — must have 'id' and 'uniqueid'
$user = (object)[
  'id'           => 123,
  'uniqueid'     => '01234567890',
  'name'         => 'John',
  'surname'      => 'Doe',
  'access_group' => AccessGroup::MODERATOR,
  'access_rank'  => AccessRank::MODERATOR,
];

// Login with 30-minute session (default)
$session->login($user);

// Custom session lifetime (2 hours)
$session->login($user, session_lifetime: 7200);

$session->logout();

if ($session->isLoggedIn()) {
  $userId = $session->getUserId();  // or $session->id()
  $name   = $session->name;          // uniqueid of logged-in user
  $user   = $session->user();       // full user object
}

use TimeFrontiers\AccessRank;

// Check rank
if ($session->hasRank(AccessRank::MODERATOR)) {
  // Can moderate
}

// Check group
if ($session->inGroup(AccessGroup::ADMIN)) {
  // Is admin
}

// Convenience methods
if ($session->isStaff()) { }     // MODERATOR or higher
if ($session->isTechnical()) { } // DEVELOPER or higher
if ($session->isAdmin()) { }     // ADMIN or higher

// Via getters
if ($session->access_rank() >= AccessRank::DEVELOPER->value) {
  // Show debug info
}

// In your form
$token = $session->generateCSRFToken('contact_form');

echo $session->csrfField('contact_form');
// Outputs: <input type="hidden" name="_csrf_token" value="...">

if (!$session->validateCSRFToken('contact_form', $_POST['_csrf_token'])) {
  die('Invalid CSRF token');
}

// Store data on the user object
$session->set('theme', 'dark');

// Retrieve
$theme = $session->get('theme', 'light');  // Default: 'light'

// Check existence
if ($session->has('theme')) { }

// Remove
$session->remove('theme');

// Get all user object properties as array
$all = $session->all();

// Set flash message
$session->flash('success', 'Profile updated!');

// Redirect...

// Get and remove flash message
if ($session->hasFlash('success')) {
  echo $session->getFlash('success');
}

// Get expiration timestamp
$expires = $session->getExpiry();

// Check if expired
if ($session->isExpired()) {
  // Re-authenticate
}

// Extend session by 30 minutes
$session->extendExpiry(1800);

// Refresh location from IP
$session->refreshLocation();

// Access location data
$loc = $session->location();
if ($loc) {
  echo $loc->country;       // "United States"
  echo $loc->country_code;  // "US"
  echo $loc->city;          // "San Francisco"
  echo $loc->currency_code; // "USD"
}

use Monolog\Logger;
use Monolog\Handler\StreamHandler;

$logger = new Logger('session');
$logger->pushHandler(new StreamHandler('session.log'));

$session = new Session($logger);

use TimeFrontiers\InstanceError;

$session->login($invalidUser);

if ($session->hasErrors()) {
  $extractor = new InstanceError($session);
  $errors = $extractor->get('login');

  foreach ($errors as $err) {
    echo $err[2]; // Error message
  }
}

// Clear errors
Session::clearErrors();
bash
composer