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 :

Page de connexion login


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Par défaut Page de connexion login
    Bonjour,

    Problème au niveau de la requête qui n'intereoge pas la base de données et dit tout de suite le mail ou le mot de passe est incorrect.
    Merci pour votre aide.

    Code html : 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
    <html>
    <form action="test1.php" method="post">
     <a href="register.php">S'enregistrer dans la Cave a Vin</a><br><br> 
    Email: <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>" /><br> 
    Mot de passe: <input type="password" name="mdp" value="<?php if (isset($_POST['mdp'])) echo htmlentities(trim($_POST['mdp'])); ?>" /><br> 
    <input type="submit" name="connexion" value="Connexion" /><br>
     </form>
    <?php 
    session_start(); 
    try 
    { 
     
    $db = new PDO('mysql:host=localhost;dbname=---;charset=utf8', '---', '-----'); 
    }
    catch (Exception $e) 
    { 
    die('Erreur : ' . $e->getMessage()); 
    }
     
     
     
    if(isset($_POST['connexion'])) {
                if(empty($_POST['email'])) { 
                         echo "Le champ email est vide."; 
                               } 
                                    else 
                                            { 
                                                    if(empty($_POST['mdp'])) { 
                                                            echo "Le champ Mot de passe est vide."; 
                                                                     } 
                                                                            else 
                                                                                    {
                    $email = $_POST['email']; 
                    $mdp = $_POST['mdp']; 
              //    echo  $email;
               //   echo  $mdp;
    $sql = "SELECT * FROM Utilisateur WHERE  email = '".$email."' AND  mdp = '".$mdp."'";
    $requete = mysqli_query($db, $sql);
         if (mysqli_num_rows($requete) !=0)
           {
            $_SESSION['email'] = $email;
               echo  'ok';
             // header('Location: panier4_1.php'); 
            }
                     else 
                {
                echo "Le mail ou le mot de passe est incorrect, le compte n'a pas été trouvé."; //on ouvre la session avec $_SESSION: // $_SESSION['pseudo'] =$Pseudo; // la session peut être appelée différemment et son contenu aussi peut être autre chose que le pseudo // echo "Vous êtes à présent connecté !"; // header('Location: index.php');
                }
        }
    } 
    }
     
    ?>
    </html>

  2. #2
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Ça ne risque pas de fonctionner ton histoire, tu te connectes avec PDO pour ensuite utiliser les fonctions MySQLi. C'est soit l'un, soit l'autre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM Utilisateur WHERE  email = '".$email."' AND  mdp = '".$mdp."'";
    Ne jamais mettre les paramêtres (surtout venant de l'extérieur) dans la requête par concaténation, c'est un trou de sécurité qui permet les injections SQL.

  3. #3
    Membre averti
    Homme Profil pro
    Debutant php
    Inscrit en
    Juin 2018
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Suisse

    Informations professionnelles :
    Activité : Debutant php

    Informations forums :
    Inscription : Juin 2018
    Messages : 20
    Par défaut
    Merci beaucoup. Ça marche bien.

  4. #4
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Ceci n'est pas une réponse à ton problème mais une remarque : tu stockes donc en clair le mot de passe dans ta db. C'est absolument déconseillé et je dirais même en exagérant un peu illégal.

    En cas de faille de sécurité et ta table des utilisateurs exposée publiquement tu risques quelques ennuis.

  5. #5
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 986
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql = "SELECT * FROM Utilisateur WHERE  email = '".$email."' AND  mdp = '".$mdp."'";
    $requete = mysqli_query($db, $sql);
         if (mysqli_num_rows($requete) !=0) {
    En optant pour PDO, et si on prépare la requête, ce passage devrait s'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $stmt = $db->prepare('SELECT 1 FROM Utilisateur WHERE email = :email AND mdp = :mdp');
    $stmt->execute(['email' => $email, 'mdp' => $mdp]);
    if ($stmt->rowCount()) {

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

Discussions similaires

  1. Page de connexion avec login,password et groupe
    Par ndiobadieye dans le forum Langage
    Réponses: 2
    Dernier message: 02/03/2015, 15h24
  2. login déjà inscrit dans la page de connexion
    Par tomguiss dans le forum Langage
    Réponses: 1
    Dernier message: 07/10/2009, 17h41
  3. [urllib] Connexion login pass
    Par ark42 dans le forum Réseau/Web
    Réponses: 9
    Dernier message: 04/08/2006, 19h51
  4. Comment retourner à sa page apres connexion?
    Par feti2004 dans le forum Langage
    Réponses: 5
    Dernier message: 03/04/2006, 09h46

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