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 :

authentification d'un compte en PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Points : 47
    Points
    47
    Par défaut authentification d'un compte en PHP
    Bonjour,
    j'ai un soucie avec mon code php.
    je m'explique : j'ai une table client qui contient 2 données
    id : 1 nom : xxx
    id : 2 nom : yyy

    lors de l'authentification si je fais rentrer xxx ====> sa marche
    mais yyy =====> sa me renvoie mon dernier ECHO


    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
    <?php
    session_start();
     
    $loginOK = false; // cf Astuce
     
    //connection a la base de données
    try
    	{
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
     
        // Insertion du message à l'aide d'une requête préparée
        $reponse = $bdd->query('SELECT nom FROM client ');
        $donnees = $reponse->fetch(PDO::FETCH_ASSOC);       
    	}
    catch(Exception $e)
    	{
        die('Erreur : '.$e->getMessage());
    	}
     
     if ( isset($_POST) && (!empty($_POST['Utilisateur'])))
    {
    // On vérifie que son login et mdp sont corrects
     
     
    if ($_POST['Utilisateur'] == $donnees['nom'] )
    	{
    $loginOK = true;
        }
    if ($loginOK)
    	 {
    	$_SESSION['nom'] = $donnees['nom'];
    	 sleep(2);
    	header ('location: main.php');
    	}
    else
       {
       echo ' Une erreur est survenue, veuillez réessayer !'; 
    echo ' cliquez "<a href="index.php"><strong>ICI</strong></a>" pour revenir a la page d\'authentification';
       	}
     
     
    }
     
     
    ?>

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu lis le premier enregistrement de la table donc forcemment ...

    D'ailleurs c'est amusant car tu as un commentaire qui indique de faire une requête préparée mais tu ne le fais pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     if ( isset($_POST) && (!empty($_POST['Utilisateur'])))
    {
    $sth= $bdd->prepare('SELECT nom FROM client WHERE nom = :nom');
    $sth->execute(array(':nom'=> $_POST['Utilisateur']));
    if ($donnees = $reponse->fetch(PDO::FETCH_ASSOC)) {
          $_SESSION['nom'] = $donnees['nom'];
          header ('location: main.php');
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Points : 47
    Points
    47
    Par défaut
    d'accord merci !!! j'ai compris

    je pourrais aussi utiliser sa au lieu de la fonction prepare et exec ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $reponse = $bdd->query('SELECT Nom FROM client WHERE Nom = "'.$_POST['Nom'].'");

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Non car ta requête serait vulnérable aux injections.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Points : 47
    Points
    47
    Par défaut
    d'accord je comprends
    merciii

    ps : je viens de tester et sa marche parfaitement.

    j'ai une autre petite question Vincent
    Si on a 2 paramètres Nom et password ? on doit faire 2 exécutions ???

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, on met les deux dans le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sth= $bdd->prepare('SELECT nom FROM client WHERE nom = :nom AND password = :password');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Points : 47
    Points
    47
    Par défaut
    on fait sa pour l'execute aussi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $sth= $bdd->prepare('SELECT nom FROM client WHERE nom = :nom, pass = :pass');
    $sth->execute(array(':nom', ':pass'=> $_POST['Utilisateur'], $_POST['pass'));

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2014
    Messages : 78
    Points : 47
    Points
    47
    Par défaut
    j'ai cherché sur le site officiel de php j'ai trouvé !!!
    donc voici la syntaxe exact
    encore merci Vincent

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sth= $bdd->prepare('SELECT Nom,Password FROM client WHERE Nom = :Nom AND Password = :Password');
        $sth->execute(array(':Nom'=>$_POST['Nom'],':Password'=>$_POST['Password']));

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

Discussions similaires

  1. [WSS 3.0] Authentification prise en compte après F5
    Par Arrau dans le forum SharePoint
    Réponses: 3
    Dernier message: 31/08/2009, 18h43
  2. [MySQL] Activation dynamique d'un compte en php
    Par beaf05 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/10/2008, 10h43
  3. [AJAX] Compte à rebours PHP Javascript ajax
    Par syl2042 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/08/2007, 18h00
  4. [Sécurité] creation de compte sous php
    Par marouman dans le forum Langage
    Réponses: 1
    Dernier message: 02/12/2005, 22h44

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