IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Démarrer et quitter une session


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Mars 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Mars 2018
    Messages : 27
    Points : 5
    Points
    5
    Par défaut Démarrer et quitter une session
    Bonjour je n'arrive pas à démarrer/détruire une session en fonction de l'heure (minutes).
    Le but est de démarrer une session par exemple quand les minutes sont supérieur à 10. Dès que je rentre dans la session je souhaite afficher une seule fois "il est l'heure". Tant que je suis dedans j'affiche "Session en cours". Puis dès que les minutes sont supérieur à 45 la session se détruit et j'affiche "Fin" une seule fois.
    Une fois la session quittée j'attends que les minutes repassent les "10" pour rentrer à nouveau dans la session ect...
    J'indique "afficher une seule fois" car en réalité je souhaite exécuter une fonction une seule fois à l'ouverture et une à la fermeture de la session mais pour comprendre je préfère afficher des mots.
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
    //$date = date("d-m-Y");
    //$heure = date("H");
    //$Minute = date("i");
     
    //Echo "Il est $heure:$Minute <br/><br/>";
     
     
    session_start();
     
    $Minute = date("i");
    Echo "Il est $Minute <br/><br/>";
     
    if ($_SESSION['init']!='$Minute > 10')
    {
    	$_SESSION['init']='$Minute > 10';
    	$_SESSION['loop']=0;
    	echo "Il est l'heure ! <br/>";
    	//Fonction à faire une seule fois.
    }
    else
    {
     
    	echo "Session en cours.<br/>";
    	$_SESSION['loop']++;
    }
     
    if ($_SESSION['loop']=$Minute > 45)
     
    {
     
    	session_destroy();
    	echo "Fin.<br/>";
    	//Fonction à faire une seule fois.
     
    }
     
    //header('Refresh: 5;URL=heure.php');
     
    ?>
    Pourriez vous m'aider car ce code fonctionne à moitié, je n'ai pas compris ce qu'il faut indiquer pour rentrer et sortir correctement de la session avec les prérequis ci-dessus.
    Je pense que l'idéal pour les minutes serait de mettre "compris entre" mais la logique reste la même pour comprendre.
    Merci à vous

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Bonsoir.
    Il me semble que ça n'est pas d'une variable de session dont tu as besoin.
    Une variable de session, c'est utile pour conserver des variables d'un script à un autre, d'une page PHP à une autre...
    Là, je ne comprends pas bien ce que tu veux faire, ni l'intérêt.
    Si c'est vraiment juste pour afficher un truc en fonction des minutes, il y aurait ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    $Minute = date("i");
    Echo "Il est $Minute après l'heure.<br/><br/>";
     
    if ($Minute >= 10 && $Minute <= 45)
    {
      echo 'On est ouvert !';
    }
    elseif($Minute >45)
    {
      echo 'On est fermé !';
    }
    else
    {
      echo 'On n\'est pas encore ouvert !';
    }
    header('Refresh: 5;');
    ?>
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Mars 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Mars 2018
    Messages : 27
    Points : 5
    Points
    5
    Par défaut
    Le problème est que écho va s afficher à chaque refresh. Ce que je souhaite est que celui ci s affiche une seule fois du moment ou le if est vrai. C est pour cela que je pensais utiliser une session.
    Avec le code que j ai mis plus haut, pensez vous que cela est réalisable?
    Merci

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Ce que je souhaite est que celui ci s affiche une seule fois du moment ou le if est vrai
    Je ne comprends absolument pas ton raisonnement.
    Ta variable minute change par définition avec l'heure... toutes les minutes.
    Tu veux la graver dans le marbre d'une session... si c'est le cas, par définition, elle n'évoluera plus en fonction de l'heure...
    Je ne peux rien te dire d'autre !
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur après-vente
    Inscrit en
    Mars 2018
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur après-vente

    Informations forums :
    Inscription : Mars 2018
    Messages : 27
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    Désolé si je me suis mal exprimé...
    Le but était de démarrer une session et afficher une fois un mot, le code ci-dessous le fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
     
    session_start();
     
    $Minute = 102;
    $_SESSION['my_minute']=$Minute;
     
    Echo "Il est $Minute <br/><br/>";
     
     
    if ($_SESSION['my_minute'] >= 100 && $_SESSION['my_minute'] <= 150 && $_SESSION['flag']=="OK")
    {
    	echo "Session en cours";
    	$_SESSION['delete']="OK";
    }
     
    if ($_SESSION['my_minute'] >= 100 && $_SESSION['my_minute'] <= 150 && $_SESSION['flag']!="OK")
    {
    	echo "UNE FOIS!";
    	$_SESSION['flag']="OK";
     
    }
    if ($_SESSION['my_minute'] >= 151)
    {
     
    	session_destroy();
    	echo "La session a été détruite <br/>";
     
    }
     
    ?>
    Dernière demande si cela est faisable et si vous comprenez.
    Il y a t'il en php un moyen d'afficher une seule fois le "echo "La session a été détruite" quand la session est détruite? Car le code ci-dessus va me l'afficher à chaque refresh.

    Merci

  6. #6
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    session_start();
    $minute = 102;
    echo "Il est $Minute <br/><br/>";
    if($minute >= 100 && $minute <= 150){
      $_SESSION['my_minute']=$minute;
      echo "Session ouverte";
    }
    elseif ($minute > 150 && ! empty($_SESSION['my_minute']))
    {
    	$_SESSION = array();
      if (ini_get("session.use_cookies")) {
        $params = session_get_cookie_params();
        setcookie(session_name(), '', time() - 42000,
            $params["path"], $params["domain"],
            $params["secure"], $params["httponly"]
        );
      }
      session_destroy();
    	echo "La session a été détruite <br/>";
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. Démarrer Glassfish sans devoir ouvrir une session windows
    Par doons dans le forum Glassfish et Payara
    Réponses: 1
    Dernier message: 20/11/2015, 14h13
  2. [WS 2008] Programme absent du menu Démarrer - Tous les programmes sous une session TSE
    Par tibofo dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 11/05/2012, 09h18
  3. Démarrer une Session ?
    Par Lung dans le forum Langage
    Réponses: 6
    Dernier message: 23/06/2006, 08h08
  4. Réponses: 2
    Dernier message: 07/09/2005, 16h28
  5. Démarrer automatiquement une session avec pass
    Par cyberman.inc dans le forum Windows XP
    Réponses: 3
    Dernier message: 07/08/2005, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo