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 :

Fonction unset() est appelé avant mon code


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Fonction unset() est appelé avant mon code
    Bonjour a tous,

    Je suis le tuto de Grafikart concernant la création d'utilisateurs en PHP.
    J'utilise comme lui Bootstrap de Twitter et donc lorsque l'utilisateur doit etre averti si une action a bien été effectué ou pas j'utilise une variable flash dans la superglobale $_SESSION.
    Dans mon template header (header.php est appelé sur chaque page) jai mis le code suivant afin d'afficher les messages quand une nouvelle page se charge :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        <?php if(isset($_SESSION['flash'])): ?>
          <?php foreach($_SESSION['flash'] as $type => $message): ?>
            <div class="alert alert-<?= $type; ?>">
              <p><?= $message; ?></p>
            </div>
          <?php endforeach; ?>
          <?php unset($_SESSION['flash']); ?>
        <?php endif; ?>
    Ce code marche ne marche pas car la fonction unset() detruit toute ma session.
    Si je l'enlève tout fonctionne normalement.
    Pourquoi ?!

    Merci pour votre aide.

  2. #2
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Un simple réflexe de recherche sur le net t'aurais permis de le comprendre.

    unset() détruit la ou les variables dont le nom a été passé en argument var.
    En gros unset détruit les variables simple type $var pour une cellule d'un tableau $var[0] ou $var['myvar'] ou les tableaux de variables environnement, de session, de cookie ...
    $_COOKIE, $_POST, $_GET, $_SESSION, $_SERVER ...

    http://php.net/manual/fr/function.unset.php

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Oui ca j'ai bien compris mais quand je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php unset($_SESSION['flash']); ?>
    Ca devrait afficher une div de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $type = success || danger
    avec comme message qui sont stocké dans .

    Mais la fonction unset() me detruit ces messages avant de les afficher ??

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je propose un debug basique : ajouter un var_dump($_SESSION['flash']); avant le foreach
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Points : 1 768
    Points
    1 768
    Billets dans le blog
    1
    Par défaut
    Peut être qu'il te manque un session_start() tout en haut de la page PHP concernée, pas évident au vue des informations que tu nous fournit , je botte en touche.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?php
    session_start();

    Pour tester utilise $_GET $_POST voir $_COOKIE au lieux de $_SESSION ça évite les conflits de session que tu semble avoir, tu as peut être une routine qui supprime les sessions automatiquement donc à se niveau il faut debug.

    bon courage.

Discussions similaires

  1. Où est l'erreur dans mon code ?
    Par fitarika dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 31/12/2009, 03h09
  2. [DOM] quel est l'erreur dans mon code
    Par une_tite_question dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 10/08/2008, 11h20
  3. [JpGraph] Appel page .php, mon code jpgraph, via page .html
    Par rudylar dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 30/06/2008, 15h44
  4. Réponses: 7
    Dernier message: 27/05/2008, 23h23
  5. Réponses: 5
    Dernier message: 14/05/2006, 22h41

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