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 :

PDO et exécution de requête [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut PDO et exécution de requête
    Re ;
    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
     
    ....
    try 
    {
     
     
    // on affecte les variables après leurs traitement
     
    $ident = trim(htmlspecialchars(stripslashes($_POST['ident'])));
    $pass =  trim(htmlspecialchars(stripslashes($_POST['pass'])));
     
    // connexion a la bdd et vérification de la validité de l'identifiant et le mot de passe
    $verifident=$cbd->prepare('SELECT acces ,mpaccess FROM etab WHERE acces =:ident and mpaccess=:pass');
    $verifident->bindParam(':ident', $_POST['ident'], PDO::PARAM_STR);
    $verifident->bindParam(':pass',  $_POST['pass'],  PDO::PARAM_STR);
     
    $verifident->execute();
    $data=$verifident->fetch();
    print_r ($data); // pour verifier les valeurs du tableau
     
    if (($data [0]['ident'] == $_POST['ident']) and ($data [1]['pass'] == $_POST['pass']))
     
    { 
    // création de session 
     
    $_SESSION['ident'] = $data['acces'];
    $_SESSION['pass']  = $data['pass'];
    $_SESSION['id']    = $data['cdet'];
     
    $verifident->closeCursor();
    $verifident = NULL;
    header ('location: ./interfaces/tab.php'); 
     exit;
    }
    else
     {
     
     //header ('location: index.php'); 
     }
    }
     
    catch( Exception $e )
    {
    echo 'Erreur de requète : ', $e->getMessage();
    							}
    avec ce code j'arrive pas a comparé le contenu de la table etab ( identifiants) par rapport aux contenus des variables du $data afin de données l'accés aux utilisateurs enregistrés.
    le print_r ($data) donne les valeurs enregistrées au niveau du formulaire.
    est ce que $data est mal utilisée !!!!!

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut lire la requête
    voila j'essaye de comprendre l'exécution de ma requête:
    préparation de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $verifident=$cbd->prepare('SELECT acces ,mpaccess FROM etab WHERE acces =:ident and mpaccess=:pass');
    affectation des valeurs aux paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $verifident->bindParam(':ident', $_POST['ident'], PDO::PARAM_STR);
    $verifident->bindParam(':pass',  $_POST['pass'],  PDO::PARAM_STR);
    exécution de la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $verifident->execute();
    affectation du résultat de la requête , là je ne sais pas si je doit utilisé fetch(PDO::FETCH_BOUND) qui retourne (1) en cas ou les données saisies par l'utilisateur = données existante au niveau de la bdd ( j'ai testé le cas mais je ne suis pas sûr de la méthode !!!!!).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $data=$verifident->fetch();
    print_r ($data); pour vérifier les valeurs du tableau donc le résultat

    là j'ai des doutes dans l'utilisation de IF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if (($data [0]['ident'] == $_POST['ident']) and ($data [1]['pass'] == $_POST['pass']))
    j'ai pas pu su changer le if par une condition qui se base sur le résultat du fetch ,

    genre si 1 (résultat du fetch) alors instruction 1 , instruction 2...

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    Tu as une erreur ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($data [0]['ident'] == $_POST['ident']) and ($data [1]['pass'] == $_POST['pass']))
    cela serait plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($data[0]['ident'] == $_POST['ident']) and ($data[0]['pass'] == $_POST['pass']))

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    apparemment sa marche pas avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($data[0]['ident'] == $_POST['ident']) and ($data[0]['pass'] == $_POST['pass']))

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Que te renvoit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r ($data); // pour verifier les valeurs du tableau

  6. #6
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Array ( [acces] => utilisateur [0] => utilisateur [mpaccess] => essai [1] => essai ) , même contenu que la table etab (identifiants)

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok et avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($data['acces'] == $_POST['ident']) and ($data['mpaccess'] == $_POST['pass']))
    La structure de ton tableau $data ne respecte pas le tableau renvoyé par fetch()

  8. #8
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    rawsrc :
    j'ai rien a dire après ton intervention . merci pour le coup de mains
    allez je vous offre une tasse de café

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

Discussions similaires

  1. [PDO] PDO et exécution de requête paramétrée (aucun résultat ne s'affiche)
    Par babacan dans le forum PHP & Base de données
    Réponses: 42
    Dernier message: 01/03/2012, 17h22
  2. Exécuter une requête non-query
    Par Piet dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 07/02/2007, 15h01
  3. [STRUTS/HIBERNATE] Problème d'exécution de requête
    Par mc_chicken dans le forum Hibernate
    Réponses: 5
    Dernier message: 21/10/2005, 09h27
  4. Comment exécuter une requête rapidement
    Par kardevlop dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/10/2005, 13h45
  5. Réponses: 2
    Dernier message: 17/10/2005, 14h58

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