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 :

[Sécurité] comment savoir si une variable de session est renseignée


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut [Sécurité] comment savoir si une variable de session est renseignée
    j'ai du code qui test si une variable de session, on va sur une page sison sur une autre

    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
     
    <?php 
    session_start&#40;&#41;; 
    $val_1 = $_SESSION&#91;'login_user'&#93;;
    echo $val_1;
    ?>
    <script> 
    function chargement&#40;&#41; &#123; 
    	if &#40;<?php echo $val_1 != null;?>&#41;&#123;
       	parent.mainframe.document.location.href='resul.php';&#125;
       	else &#123;
       	parent.mainframe.document.location.href='resul1.php';&#125;
     
    &#125; 
    </script> 
    <html>
    <body ONLOAD="chargement&#40;&#41;;">
    </body>
    </html>
    je ne suis pas du tout sur de mon (<?php echo $val_1 != null;?>)

    Merci de votre aide

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start&#40;&#41;;
    if &#40;isset&#40;$_SESSION&#91;'login_user'&#93;&#41;&#41; &#123;
         $val_1 = $_SESSION&#91;'login_user'&#93;;
    &#125; else &#123;
         $val_1 = "variable de session non définie";
    echo $val_1;
    ?> 
     
     &#58;wink&#58;
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    bonjour kcizth,

    Je te conseil plutôt la syntaxe suivante

    if(!isset($_SESSION['mavar']) || $_SESSION['mavar'] != valeuràtester)
    Redirection page variable pas définie
    else
    Redirection page variable bien définie


    Le isset permet de savoir si ta variable est présente dans tes variables de sessions.

    A+

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    Ok le isset marche mais j'ai un problème pour ma redirection, elle fonctionne lorsque ma variable $val_1 est renseignée mais lorsqu'elle n'est pas renseignée (je lui affecte 0), je vois affichée et rien ne se passe (pas de redirection)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script> 
    function chargement&#40;&#41; &#123; 
    	if &#40;<?php echo $val_1 != '0';?>&#41;&#123;
       	parent.mainframe.document.location.href='resul.php';&#125;
       	if &#40;<?php echo $val_1 == '0';?>&#41;&#123;
       	parent.mainframe.document.location.href='resul1.php';&#125;
     
     
    &#125;
    Merci

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Si tu lui mets la valeur 0, alors isset() renverra TRUE.
    Peut-être veux-tu savoir si elle est remplie plutôt que si elle existe sans forcément avoir de valeur. C'est toute la subtile différence entre isset() et empty().

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    voici mon code complet
    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
     
    <?php 
    session_start&#40;&#41;; 
    if &#40;isset&#40;$_SESSION&#91;'login_user'&#93;&#41;&#41; &#123; 
         $val_1 = $_SESSION&#91;'login_user'&#93;; 
    &#125; else &#123; 
         $val_1 = '0';
    &#125;	
     
    echo $val_1;
    ?>
    <script> 
    function chargement&#40;&#41; &#123; 
    	if &#40;<?php echo $val_1 != '0';?>&#41;&#123;
       	parent.mainframe.document.location.href='resul.php';&#125;
       	if &#40;<?php echo $val_1 == '0';?>&#41;&#123;
       	parent.mainframe.document.location.href='resul1.php';&#125;
     
     
    &#125; 
    </script> 
    <html>
    <body ONLOAD="chargement&#40;&#41;;">
    </body>
    </html>
    je lui affecte 0 après le test isset
    Où est le problème dans mon code ???

    Merci.

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Alors

    Je ne sais pas exactement ce que tu souhaites faire mais, AMHA, le plus simple serait de faire un echo du JavaScript que tu souhaites exécuter, c'est-à-dire en mettre le plus possible du côté PHP.

    Exemple :
    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
    <?php
    session_start&#40;&#41;;
    if &#40;isset&#40;$_SESSION&#91;'login_user'&#93;&#41;&#41;&#123;
       $val_1 = $_SESSION&#91;'login_user'&#93;;
       $target = 'resul.php';
    &#125;
    else &#123;
       $val_1 = '0';
       $target = 'resul1.php';
    &#125;   
     
    echo $val_1;
     
     
    ?>
    <script>
    function chargement&#40;&#41; &#123;
       parent.mainframe.document.location.href="<?php echo $target; ?>";
    &#125;
    </script> 
    <html>
    <body ONLOAD="chargement&#40;&#41;;">
    </body>
    </html>

  8. #8
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    fait la comme ca ta fonction :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script>
    function chargement&#40;&#41; &#123;
       if &#40;<?php echo $val_1;?> != 0&#41;&#123;
          parent.mainframe.document.location.href='resul.php';
          &#125; else &#123;
          parent.mainframe.document.location.href='resul1.php';
          &#125;
    &#125;
    </script>
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Quoique, en y repensant, encore plus simple serait de vraiment tout faire en PHP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start&#40;&#41;;
    if &#40;isset&#40;$_SESSION&#91;'login_user'&#93;&#41;&#41;&#123;
       header&#40;'Location&#58; resul.php'&#41;;
    &#125;
    else &#123;
       header&#40;'Location&#58; resul1.php'&#41;;
    &#125;
    ?>
    Inutile d'envoyer une page au client avec du JavaScript dedans... C'est une perte de temps, de bande passante et ça repose sur le fait que le client n'ait pas désactivé le JavaScript. Ce sont 3 arguments en défaveur du JS.

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 122
    Points : 74
    Points
    74
    Par défaut
    merci Kirkis, ta dernière proposition fonctionne, toutes les autres avant ne marchaient pas ...

    par contre j'ai encore un soucis qui doit être du au cache d'IE

    pendant mes tests j'avais plusieurs fenêtres d'IE ouvertes. J'ai testé en premier le cas du login renseigné OK, puis le cas du login non renseigné dans la foulé sans fermer mes autres fenêtre KO, l'appli me conservait le précédent login connu. J'ai fermé tous mes IE et refait le cas du login non renseigné et maintenant c'est OK

    Existe-t-il une solution pour vider le cache d'IE ou quelqhe chose comme cà ....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [débutant] Comment savoir si une variable est définie
    Par guidav dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/11/2006, 18h47
  2. Réponses: 4
    Dernier message: 07/09/2006, 16h41
  3. Réponses: 3
    Dernier message: 28/07/2006, 16h45
  4. Réponses: 2
    Dernier message: 27/06/2006, 10h15
  5. Comment savoir si une variable est initialisée ?
    Par nabix dans le forum Général Python
    Réponses: 8
    Dernier message: 10/03/2005, 16h12

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