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 :

Remontée de données BDD


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 Remontée de données BDD
    Bonjour à tous, j'essai de mettre en place un petit module de login mot de passe

    Pour se faire j'utilise :

    une page de connexion (index.php)
    une page de traitement (verification.php)
    une page de d’accueil (principale.php) si la vérification du login mot de passe est bonne.

    J'utilise session_start pour mes pages après authentification.

    Mon souci, c'est que dans ma base, j'ai des données par exemple ddn pour date de naissance,

    je n'arrive pas à faire remonter cette information pour l'afficher dans ma page principale.

    Pouvez vous m'aider svp

    page index.php

    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
     
     
    <html>
        <head>
           <meta charset="utf-8">
            <!-- importer le fichier de style -->
            <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
        </head>
        <body>
            <div id="container">
                <!-- zone de connexion -->
     
                <form action="verification.php" method="POST">
                    <h1>Connexion</h1>
     
                    <label><b>Nom d'utilisateur</b></label>
                    <input type="text" placeholder="Entrer le nom d'utilisateur" name="Login" required>
     
     
                    <label><b>Mot de passe</b></label>
                    <input type="password" placeholder="Entrer le mot de passe" name="Mdp" required>
     
     
                    <input type="submit" id='submit' value='LOGIN' >
                    <?php
                    if(isset($_GET['erreur'])){
                        $err = $_GET['erreur'];
                        if($err==1 || $err==2)
                            echo "<p style='color:red'>Utilisateur ou mot de passe incorrect</p>";
                    }
                    ?>
                </form>
            </div>
        </body>
    </html>
    page verification.php

    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
     
     
    <?php
    session_start();
    if(isset($_POST['Login']) && isset($_POST['Mdp']))
    {
        // connexion à la base de données
        $db_username = '****';
        $db_password = '****';
        $db_name     = '****';
        $db_host     = '****';
        $db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
               or die('could not connect to database');
     
        // on applique les deux fonctions mysqli_real_escape_string et htmlspecialchars
        // pour éliminer toute attaque de type injection SQL et XSS
        $Login = mysqli_real_escape_string($db,htmlspecialchars($_POST['Login'])); 
        $Mdp = mysqli_real_escape_string($db,htmlspecialchars($_POST['Mdp']));
     
        if($username !== "" && $password !== "")
        {
            $requete = "SELECT count(*) FROM bnssa where 
                  Login = '".$Login."' and Mdp = '".$Mdp."' ";
            $exec_requete = mysqli_query($db,$requete);
            $reponse      = mysqli_fetch_array($exec_requete);
            $count = $reponse['count(*)'];
            if($count!=0) // nom d'utilisateur et mot de passe correctes
            {
               $_SESSION['Login'] = $Login;
     
     
               header('Location: principale.php');
            }
            else
            {
               header('Location: index.php?erreur=1'); // utilisateur ou mot de passe incorrect
            }
        }
        else
        {
           header('Location: index.php?erreur=2'); // utilisateur ou mot de passe vide
        }
    }
    else
    {
       header('Location: index.php');
    }
    mysqli_close($db); // fermer la connexion
    ?>
    page principale.php

    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
     
     
    <?php session_start(); 
     
     
    ?>
    <html>
        <head>
            <meta charset="utf-8">
            <!-- importer le fichier de style -->
            <link rel="stylesheet" href="style.css" media="screen" type="text/css" />
        </head>
        <body style='background:#fff;'>
            <div id="content">
                <!-- tester si l'utilisateur est connecté -->
                <?php
     
                    if($_SESSION['Login'] !== ""){
                        $user = $_SESSION['Login'];
                        // afficher un message
                        echo "Bonjour $user, vous êtes connecté";
                        echo $_SESSION['droits'];
                    }
                ?>
     
            </div>
        </body>
    </html>

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

    Arrêtez de vouloir réinventer la roue....

    C'est un script BASIQUE, dont on a déjà parlé 1000 fois.
    On ne va pas répéter à chaque fois la même chose (pas de mot de passe en clair en BDD, htmlspecialchars uniquement à l'affichage,....)


  3. #3
    Membre éprouvé
    Avatar de JPBruneau
    Homme Profil pro
    retraité
    Inscrit en
    Août 2019
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : retraité
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2019
    Messages : 202
    Points : 916
    Points
    916
    Par défaut
    Bonjour,
    Que c'est compliqué tout ces fichiers, de plus on ne peut reproduire ton code pour tester, en effet je ne suis pas certain que ce que tu écrit
    correspond à ton code.
    Par exemple, tu écrit
    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
     
     
     
     
    <?php
    session_start();
    if(isset($_POST['Login']) && isset($_POST['Mdp']))
    {
        // connexion à la base de données
        $db_username = '****';
        $db_password = '****';
        $db_name     = '****';
        $db_host     = '****';
        $db = mysqli_connect($db_host, $db_username, $db_password,$db_name)
               or die('could not connect to database');
     
        // on applique les deux fonctions mysqli_real_escape_string et htmlspecialchars
        // pour éliminer toute attaque de type injection SQL et XSS
        $Login = mysqli_real_escape_string($db,htmlspecialchars($_POST['Login'])); 
        $Mdp = mysqli_real_escape_string($db,htmlspecialchars($_POST['Mdp']));
     
        if($username !== "" && $password !== "")
        {
            $requete = "SELECT count(*) FROM bnssa where 
              
    /* ETC... */
    Si c'est le cas tes sessions ne peuvent marcher car tu as 3 saut de ligne avant l'ouverture de session !
    <?php et le session start devait être collés en haut de page et le PHP enregistré sans BOM ...

  4. #4
    Membre averti Avatar de solo190
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2007
    Messages
    412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 412
    Points : 321
    Points
    321
    Par défaut
    hello UDSP50,
    si tu es sous php 7.2 ou ulterieur tu peux utiliser Libsodium pour crypter lors de l'enregistrement dans la BD
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hashed_password = password_hash($password, PASSWORD_ARGON2I);
    et comparer les mots de passes saisies lors de l 'autentification et celui present dans la BD.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    password_verify($password_saisi,$pass_bd)
    tu peux suivre ce lien pour plus de comprehension.
    https://www.developpez.net/forums/d1...ium-php-7-2-a/
    A+
    www.etech-keys.com
    https://sms.etech-keys.com

    le boiteux qui suit le chemin devance le coureur qui s'en écarte .

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/06/2006, 20h11
  2. Réponses: 7
    Dernier message: 24/02/2006, 12h32
  3. Remonter des donnes sur ACCESS
    Par pierre bunel dans le forum Access
    Réponses: 1
    Dernier message: 22/12/2005, 17h03
  4. [Hibernate]Accès aux données BDD via Hibernate
    Par LESOLEIL dans le forum Hibernate
    Réponses: 8
    Dernier message: 17/05/2005, 20h39
  5. [C#] Je n'arrive pas à remonter les données
    Par Le Basque dans le forum Windows Forms
    Réponses: 14
    Dernier message: 17/01/2005, 19h40

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