bootstrap
bootstrap
SYNOPSIS
bootstrap()
DESCRIPTION
bootstrap
initialise le contexte du programme.
Si le paramètre de configuration $db_url
est défini, bootstrap
ouvre une connextion avec la BD.
bootstrap
définit les variables globales $base_url
, $base_path
et $base_root
.
bootstrap
ouvre toujours une session et définit le variable globale $session_name
si elle n'est pas déjà définie dans le fichier de configuration.
bootstrap
est la première fonction appelée par index.php, le point d'entrée unique du programme.
CODE
- require_once 'session.php';
- require_once 'unsetglobals.php';
- require_once 'validatehostname.php';
Charge le code des fonctions session_open
, unset_globals
et validate_host_name
.
- function bootstrap() {
- global $base_url, $base_path, $base_root;
- global $db_url, $session_name, $login_lifetime;
bootstrap
initialise les variables globales $base_url
, $base_path
, $base_root
et $session_name
.
- if (isset($_SERVER['HTTP_HOST'])) {
- $_SERVER['HTTP_HOST'] = strtolower($_SERVER['HTTP_HOST']);
- if (!validate_host_name($_SERVER['HTTP_HOST'])) {
- header('HTTP/1.1 400 Bad Request');
- exit;
- }
- }
- else {
- $_SERVER['HTTP_HOST'] = '';
- }
Tente de repérer une requête frauduleuse en validant le nom de l'expéditeur avec validate_host_name
.
- unset_globals();
- @include 'settings.inc';
- @include 'config.inc';
- @include 'db.inc';
Nettoie les variables globales de PHP. Initialise et configure le programme.
- if ($db_url == 'mysql://username:password@localhost/databasename') {
- $db_url = false;
- }
- if ($db_url) {
- require_once 'pdo.php';
- db_connect($db_url);
- }
Vérifie si le connecteur à la BD a la valeur par défaut.
Ouvre une connexion avec la BD si $db_url
n'est pas false
.
- if ($base_url) {
- $base_url = trim($base_url, '/');
- $url = parse_url($base_url);
- if (!isset($url['path'])) {
- $url['path'] = '';
- }
- $base_path = $url['path'];
- $base_root = substr($base_url, 0, strlen($base_url) - strlen($base_path));
- }
- else {
- $base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';
- $base_url = $base_root .= '://'. $_SERVER['HTTP_HOST'];
- if ($dir = trim(dirname($_SERVER['SCRIPT_NAME']), '\,/')) {
- $base_path = '/' . $dir;
- $base_url .= $base_path;
- }
- else {
- $base_path = '';
- }
- }
Si la variable globale $base_url
a été définie dans config.inc, en extrait la partie chemin d'accès de l'URL pour initialiser les variables globales $base_path
et $base_root
. Sinon, calcule les valeurs de $base_root
et de $base_path
à partir des variables PHP $_SERVER['HTTPS']
, $_SERVER['HTTP_HOST']
et $_SERVER['SCRIPT_NAME']
, puis fabrique $base_url
en les concaténant.
- if (!$session_name) {
- list( , $session_name) = explode('://', $base_url, 2);
- $session_name = 'izend@' . $session_name;
- if (ini_get('session.cookie_secure')) {
- $session_name .= 'SSL';
- }
- }
Fabrique un nom de session unique si $session_name
n'est pas déjà défini.
- session_open(md5($session_name));
Ouvre une session dont le nom est le MD5 de $session_name
.
- if (isset($_SESSION['user']['lasttime'])) {
- $now = time();
- if ($now - $_SESSION['user']['lasttime'] > $login_lifetime) {
- unset($_SESSION['user']);
- }
- else {
- $_SESSION['user']['lasttime'] = $now;
- }
- }
Déconnecte un utilisateur qui est resté trop longtemps inactif.
Le paramètre de configuration $login_lifetime
définit le délai maximum en secondes entre deux requêtes.
La variable de session $_SESSION['user']
détermine si un utilisateur est identifié.
Le champ $_SESSION['user']['lasttime']
est initialisé lorsque l'utilisateur se connecte si le paramètre $login_lifetime
ne vaut pas false
.
VOIR AUSSI
validatehostname, unsetglobals, db, session, userisidentified
Commentaires