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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Erreur de session


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Erreur de session
    Bonjour j'ai un petit soucis sur les session lors d'une tentative de connexion, j'ai cherché pdt des erreur et essayé plein de chose mais je ne vois vraiment pas ou peut se trouver l'erreur merci par avance (Ma BDD se nomme gestionstock la Table inscription et les deux champs voulu identifiant et mdp merci par avance

    voici mon code html de ma page Connexion.html
    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
    <html>
    <head>
    	<meta charset="utf-8">
    </head>
    <body>
    	<center>
    		<div><h1>Connexion</h1></div>
    			<form method="post" action="../php/connexion.php">
    				Identifiant :  <input type="text" name="identifiant" maxlength="250">
    				Mot de passe : <input type="password" name="mdp" maxlength="10" id="mdp"><br><br>
    			<input type="submit" value="Connexion"/>
    			</form>
     
    		</center>
    </body>
    </html>
    ainsi que ma page connexion.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
    <?php 
     
     
    if(isset($_POST['identifiant']))      $identifiant=$_POST['identifiant'];
    else      $identifiant="";
     
    if(isset($_POST['mdp']))      $mdp=$_POST['mdp'];
    else      $mdp="";
     
    $connect = mysqli_connect('****', '****', '******', 'gestionstock'); 
    // sélection de la base  
     
       if (mysqli_connect_errno())
       {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
       }
     
     
    //  Récupération de l'utilisateur et de son pass hashé
     
     
    //  Récupération de l'utilisateur et de son pass hashé
    $sql = $connect->prepare('SELECT id, mdp FROM inscription');
    $sql->execute(array(
        'identifiant' => $identifiant));
    $resultat = $sql->fetch();
     
    // Comparaison du pass envoyé via le formulaire avec la base
    $isPasswordCorrect = password_verify($_POST['mdp'], $resultat['mdp']);
     
    if (!$resultat)
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
    else
    {
        if ($isPasswordCorrect) {
            session_start();
            $_SESSION['identifiant'] = $resultat['identifiant'];
            $_SESSION['mdp'] = $mdp;
            echo 'Vous êtes connecté !';
        }
        else {
            echo 'Mauvais identifiant ou mot de passe !';
        }
    }
     
    ?>

  2. #2
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 164
    Points : 377
    Points
    377
    Par défaut
    Bonjour,

    Tu n'a pas spécifié la clause pour ta requête SQL :

    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
    <?php
     
    /* Récupération des données du formulaire. */
    $id  = filter_input(INPUT_POST, 'identifiant');
    $mdp = filter_input(INPUT_POST, 'mdp');
     
    $connect = mysqli_connect('****', '****', '******', 'gestionstock');
     
    if( mysqli_connect_errno() )
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        exit();
    }
     
    /* Récupération de l'utilisateur à partir de son identifiant. */
    $sql      = $connect->prepare('SELECT id, mdp FROM inscription WHERE id = :id');
    $sql->execute([
        ':id' => $id
    ]);
    $resultat = $sql->fetch();
     
    if( !$resultat )
    {
        echo 'Mauvais identifiant ou mot de passe !';
        exit();
    }
     
    if( password_verify($mdp, $resultat[ 'mdp' ]) )
    {
        session_start();
        $_SESSION[ 'identifiant' ] = $id;
        $_SESSION[ 'mdp' ]         = $mdp;
        echo 'Vous êtes connecté !';
    }
    else
    {
        echo 'Mauvais identifiant ou mot de passe !';
    }
    De plus je te conseil d'utiliser l'objet PDO pour ta connexion à ta base de données et de séparer ta connexion dans une fonction séparée.

    bon courage
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Janvier 2019
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci de m'avoir répondu j'ai trouvé un autre moyen pour y parvenir merci quand même de ta réponse, voici mon code qui fonctionne

    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
    <?php 
     
     
     
    session_start();
    if(isset($_POST['identifiant']) && isset($_POST['mdp']))
    {
        // connexion à la base de données
        $db_username = '***';
        $db_password = '***';
        $db_name     = 'gestionstock';
        $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
        $identifiant = mysqli_real_escape_string($db,htmlspecialchars($_POST['identifiant'])); 
        $mdp = mysqli_real_escape_string($db,htmlspecialchars($_POST['mdp']));
     
        if($identifiant !== "" && $mdp !== "")
        {
            $requete = "SELECT count(*) FROM inscription where 
                  identifiant = '".$identifiant."' 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['identifiant'] = $identifiant;
               header('Location: ../html/Accueil.html');
            }
            else
            {
               header('Location: : ../html/connexion.html?erreur=1'); // utilisateur ou mot de passe incorrect
            }
        }
        else
        {
           header('Location: ../html/connexion.html?erreur=2'); // utilisateur ou mot de passe vide
        }
    }
    else
    {
       header('Location: ../html/connexion.html');
    }
    mysqli_close($db);

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/09/2006, 10h49
  2. erreur de session
    Par 3mreisz dans le forum Langage
    Réponses: 2
    Dernier message: 29/08/2006, 10h30
  3. Erreur de session
    Par islem dans le forum Langage
    Réponses: 1
    Dernier message: 27/08/2006, 21h18
  4. Réponses: 1
    Dernier message: 13/06/2006, 15h11
  5. Erreur php session() dans error.log serveur
    Par JoN28fr dans le forum Langage
    Réponses: 3
    Dernier message: 30/05/2006, 21h34

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