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 :

dbprotect sans utiliser "session_is_registered"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut dbprotect sans utiliser "session_is_registered"
    bonjour,

    j'essaie de faire fonctionner le code de dbprotect en faisant la mise a jour des expressions dépréciées comme "session_is_registered", etc.

    l'ancien code :
    (il marche, j'ai juste l'erreur "Deprecated: Function session_is_registered() is deprecated in C:\wamp\www\...")


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
     
    session_start(); // On relaye la session
     if (session_is_registered("authentification")){ // vérification sur la session authentification (la session est elle enregistrée ?)
     // ici les éventuelles actions en cas de réussite de la connexion
     }
     else {
     header("Location:index.php?erreur=intru"); // redirection en cas d'echec
    }
     ?>

    le code modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?php
     
     
    session_start(); // On relaye la session
    if (isset($_SESSION["authentification"])){ // vérification sur la session authentification (la session est elle enregistrée ?)
    // ici les éventuelles actions en cas de réussite de la connexion
    }
    else {
    header("Location:index.php?erreur=intru"); // redirection en cas d'echec
    }
    ?>

    mais j'ai un problème car directement il redirige vers la page par défaut (celle du else)

    si jamais vous avez un conseil à me donner ?

    je n'ai pas trouve de mise a jour pour ce script que je trouve tres bien.

    mais depuis ce matin il ne fonctionne plus car nouvelle version de wamp.

    merci d'avance
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
        <?php require_once('connexion.php'); ?>
        <?php
        /*
        -----------------------------------
        ------ SCRIPT DE PROTECTION -------
        DBProtect V1.2
        -----------------------------------
        */
        session_start(); // On relaye la session
        if (session_is_registered("authentification") && $_SESSION['privilege'] == "admin"){ // vérification sur la session authentification (la session est elle enregistrée ?)
        // On vérifie également si la session ouverte est bien une session admin et on place ici les éventuelles actions en cas de réussite de la connexion
        }
        else {
        header("Location:index.php?erreur=intru"); // redirection en cas d'echec
        }
        ?>
        <?php
        // ------ AJOUT D'UN UTILISATEUR --------
        if(isset($_POST['login'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
        if(($_POST['login'] == "") || ($_POST['pass'] == "")){ // si login ou mot de passe non spécifiés >> message d'erreur
        header("Location:admin.php?erreur=empty");
        }
        else if($_POST['pass'] == $_POST['pass2']){ // on vérifie si le mot de passe et le mot de passe confirmé ont la même valeur
        // on passe toutes les variables $POST en variables
        $login = $_POST['login'];
        $pass = md5($_POST['pass']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)
        $nom = $_POST['nom'];
        $prenom = $_POST['prenom'];
        $privilege = $_POST['privilege'];
        // on fait l'INSERT dans la base de données
        $add_user = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')");
        mysql_select_db($database_dbprotect, $dbprotect);
        $result = mysql_query($add_user, $dbprotect) or die(mysql_error());
        header("Location:admin.php?add=ok"); // redirection si création réussie
        }
        else{
        header("Location:admin.php?erreur=pass"); // redirection si le pass1 est différent du pass2
        }
        }
        // ------ SUPPRESSION D'UN UTILISATEUR --------
        // on fait la requête sur tous les utilisateurs de la base pour alimenter notre sélecteur (on fait un tri par nom)
        mysql_select_db($database_dbprotect, $dbprotect);
        $query_users = "SELECT * FROM utilisateurs ORDER BY nom ASC"; // ORDER BY renvoi les données triées (ici par nom croissant)
        $users = mysql_query($query_users, $dbprotect) or die(mysql_error());
        $row_users = mysql_fetch_assoc($users);
        if(isset($_POST['suppr']) && ($_POST['suppr'] != "1")){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
        $id = $_POST['suppr'];
        $delete_user = sprintf("DELETE FROM utilisateurs WHERE id_user='$id'");
        mysql_select_db($database_dbprotect, $dbprotect);
        $result = mysql_query($delete_user, $dbprotect) or die(mysql_error());
        header("Location:admin.php?delete=ok"); // url qui servira pour afficher le message de réussite
        }
        ?>
        <html>
        <head>
        <title>ADMINISTRATION - DBProtect</title>
        <link href="styles.css" rel="stylesheet" type="text/css">
        </head>
        <body>
        <form action="" method="post" name="add">
        <div class="titre">- : : : ESPACE ADMINISTRATION : : : -</div>
        <p align="center">
        <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "pass")) { // Affiche l'erreur ?>
        <span class="erreur">Veuillez entrer deux fois votre mot de passe SVP</span>
        <?php } ?>
        <?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?>
        <span class="reussite">L'utilisateur a &eacute;t&eacute; cr&eacute;&eacute; avec succ&egrave;s !</span>
        <?php } ?>
        <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "empty")) { // Affiche l'erreur ?>
        <span class="erreur">Un petit oubli non ? Veuillez renseigner au moins un login et un mot de passe SVP</span>
        <?php } ?>
        </p>
        <p align="center"><strong><u>Cr&eacute;er un utilisateur</u></strong></p>
        <table width="350" border="0" align="center" cellpadding="5" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
        <tr>
        <td width="40">Login</td>
        <td width="144"><input name="login" type="text" id="login"></td>
        </tr>
        <tr>
        <td>Mot de passe </td>
        <td><input name="pass" type="password" id="pass"></td>
        </tr>
        <tr>
        <td>R&eacute;p&eacute;ter mot de passe </td>
        <td><input name="pass2" type="password" id="pass2"></td>
        </tr>
        <tr>
        <td>NOM</td>
        <td><input name="nom" type="text" id="nom"></td>
        </tr>
        <tr>
        <td>Pr&eacute;nom</td>
        <td><input name="prenom" type="text" id="prenom"></td>
        </tr>
        <tr>
        <td>Privil&egrave;ge</td>
        <td><select name="privilege" id="privilege">
        <option value="user">Utilisateur</option>
        <option value="admin">Administrateur</option>
        </select></td>
        </tr>
        <tr>
        <td height="50" colspan="2"><div align="center">
        <input type="submit" name="Submit" value="Cr&eacute;er cet utilisateur">
        </div></td>
        </tr>
        </table>
        </form>
        <p align="center"><strong>
        <?php
        if(isset($_GET['delete']) && ($_GET['delete'] == "ok")) { // Affiche l'erreur ?>
        <span class="reussite">L'utilisateur a &eacute;t&eacute; supprim&eacute; avec succ&egrave;s</span>
        <?php } ?>
        <?php
        if(isset($_POST['verif']) && (!isset($_POST['suppr']))) { // Affiche l'erreur ?>
        </strong><span class="erreur">Veuillez s&eacute;lectionner un utilisateur &agrave; supprimer </span><strong>
        <?php } ?>
        <?php
        if(isset($_POST['suppr']) && ($_POST['suppr'] == "1")) { // Affiche l'erreur ?>
        </strong><span class="erreur">Vous ne pouvez pas supprimer l'utilisateur par d&eacute;faut toto.<br>
        Pour tester la fonction de supression, ajoutez un utilisateur.<br>
        Pour s&eacute;curiser votre script, il est fortement recommand&eacute; de le supprimer manuellement dans votre BDD ... </span><strong>
        <?php } ?></strong></p>
        <form action="" method="post" name="suppr">
        <p align="center"><strong><u>Supprimer un utilisateur</u></strong></p>
        <div align="center">
        <table width="500" border="0" cellpadding="5" cellspacing="0" class="tableaux">
        <tr>
        <td width="240"><div align="center">
        <select name="suppr" size="5" id="select2">
        <?php
        do {
        ?>
        <option value="<?php echo $row_users['id_user']?>">
        <?php if($row_users['privilege']== "admin") echo ">> "; echo $row_users['nom']." ".$row_users['prenom']." (".$row_users['login'].")"; if($row_users['privilege']== "admin") echo " <<"?>
        </option>
        <?php
        } while ($row_users = mysql_fetch_assoc($users));
        $rows = mysql_num_rows($users);
        if($rows > 0) {
        mysql_data_seek($users, 0);
        $row_users = mysql_fetch_assoc($users);
        }
        ?>
        </select>
        <input name="verif" type="hidden" id="verif">
        </div></td>
        <td width="157"><input type="submit" name="Submit2" value="Supprimer cet utilisateur"></td>
        </tr>
        </table>
        <p><a href="accueil.php"><strong>&lt; Retour accueil</strong></a></p>
        </div>
        </form>
        </body>
        </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    regarde ce que tu contiens ta session avec print_r($_SESSION);

    il y a quand meme une bonne chance qu'elle ne contienne effectivement pas $_SESSION['authentification']
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut
    Citation Envoyé par sabotage Voir le message
    regarde ce que tu contiens ta session avec print_r($_SESSION);

    il y a quand meme une bonne chance qu'elle ne contienne effectivement pas $_SESSION['authentification']

    bonjour,

    le print donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [language] => fr [authentification] => [privilege] => admin [nom] => test [prenom] => test [login] => test [pass] => 098f6bcd4621d373cade4e832627b4f6 )
    j'ai juste essayé de remplacer 'lexpression par ce qui est conseillé.
    avec le code d'origine cela marche tres bien mais depuis la nouvelle version version php j'ai le message d'erreur. (depreciated etc...)

    a+

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais faire ça pour voir ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    session_start();
    print_r ($_SESSION);
    echo '<br/>';
    var_dump($_SESSION["authentification"]); // On relaye la session
    if (isset($_SESSION["authentification"])){ // vérification sur la session authentification (la session est elle enregistrée ?)
    echo 'oui';
    }
    else {
    echo 'non';
    //header("Location:index.php?erreur=intru"); // redirection en cas d'echec
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 11
    Par défaut
    le résultat est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Array ( [language] => fr [authentification] => [privilege] => admin [nom] => test [prenom] => test [login] => test [pass] => 098f6bcd4621d373cade4e832627b4f6 )
    NULL non

    a+

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $_SESSION['authentification'] est NULL.
    Ton problème se situe donc dans le code qui lui donne sa valeur, pas ici.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Utilisation du format $quote
    Par lhonolulu dans le forum SAS Base
    Réponses: 5
    Dernier message: 25/05/2009, 11h06

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