Fonction de réactualisation d'une session

  Information

Cette fonction permet de vérifier si la session est expirer.
Si oui, elle la détruit, sinon elle l'actualise.

Vous devez crée une variable $_SESSION['time'] lors de la création de la session (la connexion de l'utilisateur).

A appeler juste après le session_start, comme ceci:

session_start();
actualiser_session();

PS: n'oubliez pas de crée un fichier fonction.php, d'y placer le code et de l'inclure dans chaque page ou la fonction est appellé.

  code source classé dans  Sessions

 
 01    
 02    
 03    
 04    
 05    
 06    
 07    
 08    
 09    
 10    
 11    
 12    
 13    
 14    
 15    
 16    
 17    
 18    
 19    
 20    
 21    
 22    
 23    
 24    
 25    
 26    
 27    
 28    
 29    
 30    
 31    
                               
<?php
/*---------------------------------------------------------------*/
/*
    Titre : Fonction de réactualisation d'une session                                                                    
                                                                                                                          
    URL   : https://phpsources.net/code_s.php?id=536
    Auteur           : Boustifire                                                                                         
    Date édition     : 25 Nov 2009                                                                                        
    Date mise à jour : 21 Aout 2019                                                                                      
    Rapport de la maj:                                                                                                    
    - fonctionnement du code vérifié                                                                                    
*/
/*---------------------------------------------------------------*/

    function actualiser_session()
    {
        if ( isset($_SESSION['time']) ) // Test: Si il existe une session
        {
            $tempsMaxSession 3600;                            
    // le temps maximal que dure la session en seconde

        if( ($_SESSION['time'] + $tempsMaxSession) >= time() )    
    // Si l'action sur la session date de moins de $tempsMaxSession
            $_SESSION['time'] = time();            // Session reactialisé
        else                                       // Sinon
                session_destroy();                 // Session detruite
         }
    }
?>

          Fonctions du code - Doc officielle PHP

   php.net   Description Versions PHP OUTIL
   isset Détermine si une variable est affectée PHP 4, PHP 5, PHP 7, PHP 8
   session_destroy Détruit une session PHP 4, PHP 5, PHP 7, PHP 8
   time Retourne le timestamp UNIX actuel PHP 4, PHP 5, PHP 7, PHP 8

   Dites merci aux auteurs pour leurs travail, ça ne coûte rien et ça fait toujours plaisir wink

[3]

  • avatar

    Invité

    21 Juin 2011 à 20:33

    je propose de créer une autre fonction en complement de ta fonction

    function demarrer_session() {     session_start(); 
    $_SESSION['time']= time();    }
    et de l'inclure dans le même fichier que ta fonction on pourra donc faire
    au moment de la connexion d'un utilisateur

    demarrer_session(); actualiser_session();

  • avatar

    Boustifire

    25 Nov 2009 à 10:34

    Hum, tu a raison pour le time, mais bon pour le temps de la session en parametre de fonction, je ne trouve pas utile.
    j'essayerai de changer sa dans l'aprem, merci :)

  • avatar

    Isaki

    25 Nov 2009 à 09:59

    Bonjour Au lieu d'initialiser la session 'time' en externe, ca serait mieux de le faire directement dans la fonction en ajoutant une condition à la fin du snippet...

       if ( isset($_SESSION['time']) ) // Test: Si il existe une session
        {
        ...
        }

         else
         {
          $_SESSION['time'] = time(); // Initialise la session avec l'heure
         }
    et vu qu'on doit mettre cette fonction tout en haut de chaque script, pourquoi ne pas inclure le session_start(); également dans la fonction ? et pour terminer passer le parametre du temps dans la fonction, au final ca donnerai actualiser_session(3600);

Présentation de PHP

PHP débutant et initié 50 Tutoriel

Présentation de MySQL