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 :

session_is_registered [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 46
    Points
    46
    Par défaut session_is_registered
    Bonjour
    J'ai le même problème depuis passage à PHP 5.3.0,

    Dans la page ou je m'authentifie, je rentre le login et le mot de passe et j'arrive sur une page ou j'ai encore laissé "session_is_registered", la session s'ouvre sans problème sauf le message précisant "Deprecated: Function session_is_registered() is deprecated " ce qui est normal car je l'ai laissé sur cette page "session_is_registered"
    Par contre si je vais sur la page ou j'ai remplacé "session_is_registered" par $_SESSION, ca ne fonctionne pas car message "erreur d'authentification"

    Pouvez vous m'aider ?

    Code avec session_is_registered
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    session_start();
    if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){  
    }
    else {
    header("Location:index.php?erreur=intru");
    }
    ?>
    remplacé par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    session_start();
    if (!isset($_SESSION['authentification'] && $_SESSION['privilege'])) == "admin"){    
    }
    else {
    header("Location:index.php?erreur=intru");
    }
    ?>
    Dans la pge ou on doit s'authentifier on retrouve 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
     
    session_start(); 
     
    if (isset($_POST['login'])){
    	$login = $_POST['login']; 
    	$pass = md5($_POST['pass']);
     
    mysql_select_db($base, $connexion);
    $verif_query=sprintf("SELECT * FROM users_info WHERE login='$login' AND pass='$pass'"); 
    $verif = mysql_query($verif_query, $connexion) or die(mysql_error());
    $row_verif = mysql_fetch_assoc($verif);
    $utilisateur = mysql_num_rows($verif);
     
     
    	if ($utilisateur) {	
    	    session_register("authentification"); 
     
    		$_SESSION['privilege'] = $row_verif['privilege'];  
    		$_SESSION['nom'] = $row_verif['nom']; 
    		$_SESSION['prenom'] = $row_verif['prenom']; 
    		$_SESSION['login'] = $row_verif['login']; 
    		$_SESSION['pass'] = $row_verif['pass']; 
     
    		header("Location:accueil.php?login=".$row_verif['login']);
    }
    	else {
    		header("Location:index.php?erreur=login");
     
         }
     
    }
     
    if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ 
    $prenom = $_SESSION['prenom']; 
    session_unset("authentification");
    header("Location:index.php?erreur=delog");
    }
    ?>
    Pouvez vous m'aider à résoudre mon problème ?
    merci

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    $authentification n'existe pas, donc session_register("authentification"); ne peux pas fonctionner

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Merci pour votre réponse,
    Je dois donc mettre $authentification à la place ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    session_start();
    if (!isset($_SESSION[$authentification] && $_SESSION['privilege'])) == "admin"){    
    }
    else {
    header("Location:index.php?erreur=intru");
    }
    ?>

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par christophe_s46 Voir le message
    Merci pour votre réponse,
    Je dois donc mettre $authentification à la place ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    session_start();
    if (!isset($_SESSION[$authentification] && $_SESSION['privilege'])) == "admin"){    
    }
    else {
    header("Location:index.php?erreur=intru");
    }
    ?>
    faire un

    $_SESSION['authentification'] = true;
    a la place de
    session_register("authentification");

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    avec ce code la session s'ouvre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    if ($_SESSION['authentification'] && $_SESSION['privilege'] = TRUE) 
      { 
      echo "OK";
      }
    else {
    header("Location:index.php?erreur=intru");
    }
    ?>
    mais les droits admin ne fonctionnent pas, comment je dois faire pour rajouter les droits admin ?
    Merci

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    ton expression n'est pas bonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['authentification'] && $_SESSION['privilege'] = TRUE

  7. #7
    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
    Deux choses :
    - la comparaison d'égalité c'est == (voire ===) Si tu utilises = true (à la place de == true) dans une condition, ta condition sera toujours validée

    - l'équivalent de session_is_registered c'est isset et pas !isset

    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin")
    //devient 
    if (isset($_SESSION['authentification']) && $_SESSION['privilege'] == "admin")
     
    //voire si on veut être rigoureux :
    if (isset($_SESSION['authentification']) && isset($_SESSION['privilege']) && $_SESSION['privilege'] == "admin")
    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]

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 69
    Points : 46
    Points
    46
    Par défaut Merci
    Bonjour et merci ca fonctionne
    merci beaucoup

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

Discussions similaires

  1. [PHP 5.1] erreur de fonction session_is_registered()
    Par jesslegende dans le forum Langage
    Réponses: 2
    Dernier message: 29/01/2010, 21h42
  2. dbprotect sans utiliser "session_is_registered"
    Par Faxon dans le forum Langage
    Réponses: 11
    Dernier message: 28/12/2009, 14h33
  3. Problème session_start, et session_is_registered!
    Par Le Mad dans le forum Langage
    Réponses: 12
    Dernier message: 24/05/2006, 17h14

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