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é] Variables dans une session


Sujet :

Langage PHP

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut [Sécurité] Variables dans une session
    Dans une table j'ai l'index des membres, l'identifiant, le password et un niveau d'accès aux pages.
    En fonction du niveau attribué aux membres, ils ont accès à certaines pages et pas à d'autres (pages de mises à jour de la bdd).
    Je voudrais savoir si dans une session je peux passer en plus du nom son niveau d'accès.

    Merci

  2. #2
    Membre éclairé Avatar de nako
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2003
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2003
    Messages : 577
    Points : 663
    Points
    663
    Par défaut
    Bonjour, tu peux passer autant de variable que tu veux en session ...
    pourquoi pas ?
    Qu'est-ce qui te gene ?
    a+

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci,

    Je voudrais savoir où je dois ouvrir la session
    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
    if(isset($_POST['loga']))      $ident=$_POST['loga'];
    else	$ident = "";
    if(isset($_POST['passa']))      $motpass=$_POST['passa'];
    else	$motpass = "";
    // on vérifie si l'identifiant et le mot de passe sont renseignés
    if ((empty($_POST['loga'])) || (empty($_POST['passa'])))
        	{ 
        	} 
    else {
    	$sql = mysql_query("select * FROM Admin",$connexion);
    	// nombre de lignes
    	$nombreligne = mysql_num_rows($sql);
    	for ($i = 0; $i < $nombreligne; $i++) 
    	{
    		$identbd = mysql_result($sql,$i,"Ad_Login");
    		$motpassbd = mysql_result($sql,$i,"Ad_Pass");		
    		if ((sha1($ident) === $identbd) && (sha1($motpass) === $motpassbd)) {
    			// ici il faut mettre un paramètre de niveau pour l'accès aux pages du club
    // JE SUPPOSE QUE J'OUVRE LA SESSION ICI ?
    			   header ("Location: nos_pages/le_club.php"); 
    			   exit(); 
    		}
    		else {
    			?><p align=center>
    			Identifiant ou mot de passe incorrecte !
    			<?		
    		}
    	}
    }
    ?>
    Sauf si j'ai pas compri (et c'est probable) on ne récupère pas les variables sur les pages, donc comment je teste le niveau?

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    prends l'habitude d'ouvrir la session ( session_start() ) en début de page, ça t'éviteras de mauvaises surprises...

    si tu veux entrer des informations dans la session tu les mets ou tu as cette ligne :
    // JE SUPPOSE QUE J'OUVRE LA SESSION ICI ?
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $_SESSION['niveau'] = 'admin';
    $_SESSION['petit_nom'] = $ident;
    // bref autant que tu veux....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if ((empty($_POST['loga'])) || (empty($_POST['passa'])))
           {
           }
    else {
    et pourquoi pas simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ( !empty($_POST['loga']) && !empty($_POST['passa']) ) {

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci pour ta réponse.

    J'aimerai une précision : pourquoi
    $_SESSION['niveau'] = 'admin';
    et pas
    $_SESSION['niveau'] = $niveau;

    D'autre part je suppose que je dois tester le niveau sur à l'ouverture de mes pages ?

  6. #6
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Citation Envoyé par philippef
    Merci pour ta réponse.

    J'aimerai une précision : pourquoi
    $_SESSION['niveau'] = 'admin';
    et pas
    $_SESSION['niveau'] = $niveau;
    bahhh tu mets ce que tu veux dans la variable, je ne pouvais pas deviner que tu avais une variable de ce nom...

    D'autre part je suppose que je dois tester le niveau sur à l'ouverture de mes pages ?
    bien deviné ;-)
    en imaginant le code que je t'ai donné auparavant, je sais.... tu vas m'dire : il persiste avec son 'admin', mais c'est pour l'exemple :p
    donc une page réservée à un niveau administrateur devrait commencer par :
    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
     
    <?php
    session_start();
    if(isset($_SESSION['niveau'])) {
       if ($_SESSION['niveau'] == "admin") {
          // le reste de la page reservee aux administrateurs
       }else {
          // tu peux pas voir cette page, donc je te jète sur une autre page (exemple index.php )
          header("Location: index.php");
          exit();
    }else {
         // encore pire la variable de session n'existe meme pas, donc au revoir !
        header("Location: index.php");
        exit();
    }
    ?>
    j'espére que c'était assez explicite...

  7. #7
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Un grand merci à toi, car comme tu as pu le comprendre, c'est la 1 ere fois que j'utilise les mots de passe et les sessions.

    Donc encore merci.

    t'inquiètes pas, je vais mettre le "résolu"

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

Discussions similaires

  1. [PHP 5.0] Détruire des variables dans une session
    Par hraiwen dans le forum Langage
    Réponses: 5
    Dernier message: 08/01/2010, 13h39
  2. Réponses: 2
    Dernier message: 17/06/2008, 12h49
  3. Perte de variables dans une session SSL
    Par linar009 dans le forum Langage
    Réponses: 7
    Dernier message: 30/10/2006, 12h51
  4. Valeur d'une variable dans une Session
    Par sysinfo33 dans le forum Struts 1
    Réponses: 4
    Dernier message: 30/06/2006, 11h53
  5. Réponses: 7
    Dernier message: 15/05/2006, 13h36

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