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

PHP & Base de données Discussion :

session start et gestion des accès


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut session start et gestion des accès
    Bonjour à tous et meilleurs voeux

    Voila j'ai un souci, ayant des connaissances très limitées en programmation ( chacun fait ce qu'il peut), j'ai essayé de faire une connexion par session

    globalement ça marche

    voici mon code pour me connecter :

    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
     
     
    <html>
        <head>
            <meta charset="UTF-8">
            <title>Connexion</title>
            <style type="text/css">
    <!--
    .Style1 {color: #990000}
    -->
            </style>
    </head>
        <body>
     
    <table width="685" border="0" align="center">
      <tr>
        <td><h1 align="center" class="Style1">Connexion Membre</h1></td>
      </tr>
    </table>
     
     
     
     
    <table width="685" border="1" align="center" bgcolor="#FFFFFF">
      <tr>
    <td>        <form action="/amicalistes/login_postAM.php" method="post">
                <label for="nom">
                <table width="685" border="0">
                  <tr>
                    <td width="123"><div align="center"><img src="../images/Logo.png" width="173" height="236"></div></td>
                    <td width="536"><div align="center">Nom :</div>
                      </label>
                      <div align="center">
                      <select name="login" required />
             <option value=" "> </option>
           <?php
    			mysql_connect("********", "********", "*******");
    			mysql_select_db("********");
    			$reponse = mysql_query("SELECT * FROM users WHERE acces = 'statut 1' Or acces = 'statut 2' Or acces = 'statut 3' order by LoginUtil ASC");
    			while ($donnees = mysql_fetch_array($reponse) )
    			{?>
    		<option value="<?php echo $donnees['LoginUtil']; ?>"><?php echo $donnees['LoginUtil']; ?></option>
    			<?php } ?>
            </select>
                      </div>
                      <br>
                      <div align="center">Statut :</div>
                      <div align="center">
                        <p>
                          <select name="acces" required />
                            <option value=" "> </option>
                            <option value="statut 1">statut 1</option>
                            <option value="statut 2">statut 2</option>
                            <option value="statut 3">statut 3</option>
                          </select>
                        </p>
                      </div>
                      <div align="center">Mot de passe :</div>
                      <div align="center">
                        <p>
                          <input type="password" name="mdp" id="mdp" required />
                        </p>
                    </div></td>
                  </tr>
                </table>
            <div align="center"></div>
                <div align="center">
                  <table width="685" border="0">
                    <tr>
                      <td width="169">&nbsp;</td>
                      <td width="500"><div align="center">
                        <input type="submit" value="Connexion">
                      </div></td>
                    </tr>
                  </table>
                  </div>
        </form></td>
      </tr>
    </table>
     
     
    </body>
    </html>
    et voici ma page de traitement

    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
     
     
    <?php
    session_start();  // démarrage de ma session session
     
     
    // on vérifie que les données du formulaire sont présentes
     
     
    if (isset($_POST['login']) && isset($_POST['acces']) && isset($_POST['mdp'])) {
        require 'fonctions.php';
        $bdd = getBdd();
     
     
        // requête permetant de récupérer l'utilisateur depuis la BD
        $requete = "SELECT * FROM users WHERE LoginUtil=? AND acces=? AND PassUtil=?" ;
        $resultat = $bdd->prepare($requete);
        $login = $_POST['login'];
        $mdp = $_POST['acces'];
    	$acces = $_POST['mdp'];
        $resultat->execute(array($login, $mdp, $acces,));
        if ($resultat->rowCount() == 1) {
            // l'utilisateur existe dans la table
            // on ajoute ses infos en tant que variables de session
            $_SESSION['login'] = $login;
            $_SESSION['acces'] = $mdp;
    		$_SESSION['mdp'] = $acces;
            // cette variable indique que l'authentification a réussi
            $authOK = true;
        }
    }
    ?>
     
     
    <!doctype html>
    <html>
    <head>
        <meta charset="UTF-8" />
        <title>Résultat de l'authentification</title>
        <style type="text/css">
    <!--
    .Style1 {color: #990000}
    -->
        </style>
    </head>
    <body>
     
    <div align="center">
      <table width="685" border="0">
        <tr>
          <td><h1 align="center" class="Style1">Résultat de l'authentification</h1></td>
        </tr>
      </table>
      <table width="685" border="1">
        <tr>
          <td bgcolor="#FFFFFF">    <div align="center">
            <?php
        if (isset($authOK)) {
            echo "<p>Vous avez été reconnu(e) en tant que " . escape($login) . "</p>";
            header('Location: /amicalistes/index_.php');
        }
        else { ?>
            </div>
            <table width="685" border="0">
              <tr>
                <td width="93"><img src="images/Logo.png" width="86" height="118"></td>
                <td width="576"><p align="center">Vous n'avez pas été reconnu(e)</p>
                <p align="center"><a href="login.php">Nouvel essai </a><a href="../index.php"> | Retour</a></p></td> 
              </tr>
            </table>
            <div align="center">
                <?php } ?>
          </div></td>
        </tr>
      </table>
    </div>
    </body>
    </html>
    bon ca globalement ca marche,

    les données qui sont vérifiées sont dans ma table "users"

    Cependant, dans cette table j'ai aussi un autre type de donnée "Niveau" que j'aimerai prendre en compte lorsque j’accède à une page
    Par exemple si l’utilisateur est reconnu j'aimerai qu'il soit redirigé vers la page X si son niveau est 1, vers la page y si son niveau est 2 etc...comment puis-je faire, pouvez vous m'aider svp

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    depuis quand met-on les login dans une liste déroulante ??
    C'est généralement un champ input VIDE !

    Quant aux droits d'accès (statut) : on n'est pas sensé le fournir à la connexion.

    MERCI de faire une recherche il existe de nombreux scripts de connexion, et des discussions résolues sur le sujet.


    Concernant la procédure de vérification :

    • 1- requête sur le login reçu (uniquement) pour voir si il existe en Bdd.
    • 2- Si oui : on récupère (en bdd) le password * enregistré et statut pour ce login.
    • 3- on vérifie que le password reçu correspond bien à celui enregistré. .
    • 4- Si oui : on enregistre le login (ou identifiant id auto-incrémenté) et le statut dans des variables de SESSION.
    • 5- on redirige alors vers la page admin ** via header(location:...)


    * Généralement, le password enregistré est HASHE (par sécurité) avec password_hash(), et vérifié avec password_verify()
    ** C'est ici que tu peux rediriger vers des pages différentes, selon le statut (via un simple if else, ou un switch case)


    N.B. Et aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        $mdp = $_POST['acces'];
    	$acces = $_POST['mdp'];
    Fais attention à ce que tu écris...
    Dernière modification par Invité ; 09/01/2018 à 15h46.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 411
    Points : 117
    Points
    117
    Par défaut
    Merci beaucoup pour votre aide je vais essayer de m'y coller ce soir il faut que j'y arrive

    encore merci je reviens vers vous en cas de soucis

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/03/2009, 11h30
  2. Gestion des accès concurrent
    Par nicoaix dans le forum Access
    Réponses: 3
    Dernier message: 06/07/2006, 15h54
  3. Gestion des accès concurrents à une table
    Par kodo dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/06/2006, 14h05
  4. [Sécurité]Gestion des accès dans plusieurs bases
    Par vincentj dans le forum Débuter
    Réponses: 1
    Dernier message: 05/01/2005, 14h19
  5. [Struts] Droits d'un user et gestion des accès aux pages
    Par PeteMitchell dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/04/2004, 11h30

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