<?php
if (php_sapi_name() == "cli")
  return true;

// Define session max duration
if (!isset($session_max_duration))
  $session_max_duration = (12*60*60); // Default to 12h
ini_set('session.gc_maxlifetime', $session_max_duration);
ini_set('session.cookie_lifetime', $session_max_duration);

// Start session
session_start();

// Init session key
if (!isset($_SESSION['session_key'])) {
  $_SESSION['session_key']=uniqid();
}

// Handle session timeout
if ($session_timeout) {
  if (!isset($_SESSION['session_last_access'])) {
    logging('DEBUG', 'Set initial session last access');
    $_SESSION['session_last_access'] = time();
  }
  elseif ($_SESSION['session_last_access'] > (time() - $session_timeout)) {
    logging(
      'DEBUG',
      'Session timeout not expired, update session last access '.
      '(Previous value : '.$_SESSION['session_last_access'].')');
    $_SESSION['session_last_access'] = time();
  }
  else {
    logging('INFO', 'Session destroyed due to inactivity');
    session_destroy();
  }
}

function check_session_key($value=null) {
  if (is_null($value) && isset($_REQUEST['session_key']))
    $value = $_REQUEST['session_key'];
  return ($value && $_SESSION['session_key'] == $value);
}