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 :

Authentification PHP et PostgreSQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Par défaut Authentification PHP et PostgreSQL
    Bonjour à tous,

    Etant novice avec Postgre et n'ayant pas le choix de l'utiliser(stage) je bloque sur un certains point là maintenant.

    Concernant le PHP, j'essaye de faire un contrôle lors d'une connexion, le soucis c'est que je bloque avec pg_querry.

    J'ai d'abord créer un scritp contenant mes information de connexion et ma connexion PDO :

    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
    <?php
     
     
    $user='postgres';
    $pass='postgres';
    $dsn='pgsql:host=127.0.0.1;dbname=BaseTest';
     
    try {
        $dbh = new PDO($dsn, $user, $pass);
        print "Connexion reussis !";
        $dbh = null;
    } catch (PDOException $e) {
        print "Erreur ! : " . $e->getMessage();
        die();
    }
    ?>
    Déjà là j'ai des doute sur la validité de mon script..Mais bon, apparement ça marche quand même puisqu'il m'affiche Connexion reussis !

    Ensuite j'ai mon script de vérification des informations :

    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
    <?php
    session_start();
    require 'connect.php'; 
    $id=$_POST['id'];
    $mdp=$_POST['password'];
    $sql= "SELECT * FROM vv_utilisateur  WHERE id='$id' AND mdp='$mdp'";
     
    try {
        $res=pg_query($dbh, $sql);
        if($curseur=$res->pg_fetch()) {
            $_SESSION['id']=$id;
            $_SESSION['membre']=TRUE;
            header("location:succes.php");
            die();       
        }
        else {
            $_SESSION['membre']=FALSE;
            header("location:index.php");
            die();
        }
    } catch (PDOException $ex) {
        die('echec : '.$ex->getMessage());
     
    }
    Mais voilà, mon pg_query me renvois une erreur du type : " pg_query() expects parameter 1 to be resource, null given in"

    Je bloque dessus depuis un petit moment et j’espérais que vous pourriez m'aider

    J'utilise la dernière version de WAMP avec Apache 2.4.9, PHP 5.5.12 et Postgre 9.4.

    En vous remerciant d'avance

    Anthony

  2. #2
    Membre émérite Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Par défaut
    Une fois que la connexion est réalisé, elle est immédiatement détruite dans votre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $dbh = new PDO($dsn, $user, $pass);
        print "Connexion reussis !";
        $dbh = null;
    En retirant la dernière ligne, le problème devrait être résolu.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Par défaut
    Citation Envoyé par MythOnirie Voir le message
    Une fois que la connexion est réalisé, elle est immédiatement détruite dans votre code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        $dbh = new PDO($dsn, $user, $pass);
        print "Connexion reussis !";
        $dbh = null;
    En retirant la dernière ligne, le problème devrait être résolu.
    Merci de ta réponse aussi rapide, mais cela n'as rien changé à mon erreur..

  4. #4
    Membre émérite Avatar de MythOnirie
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Juin 2012
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Juin 2012
    Messages : 376
    Par défaut
    La syntaxe du dsn pour postgresql via pdo est décrite sur cette page : pdo-pgsql

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Par défaut
    Citation Envoyé par MythOnirie Voir le message
    La syntaxe du dsn pour postgresql via pdo est décrite sur cette page : pdo-pgsql
    Oui j'ai bien éplucher cette page depuis ce matin !

    Mais ma syntaxe a l'air bonne vu que la connexion s'établie correctement non ?

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    C'est tout a fait normal que cela ne fonctionne pas, tu utilises deux technologies différentes (PDO et driver natif) pour réaliser tes requêtes.

    Tu dois continuer en PDO et rester en PDO pour que cela fonctionne et oublier pg_query (ou alors l'inverse, mais je ne te le conseilles pas).

    Essaye ceci :

    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
     
    <?php
    session_start();
    require 'connect.php'; 
    $id=$_POST['id'];
    $mdp=$_POST['password'];
    //$sql= "SELECT * FROM vv_utilisateur  WHERE id='$id' AND mdp='$mdp'";
     
    try {
     
            $sql = 'SELECT * FROM vv_utilisateur  WHERE id=? AND mdp=?';
            $r = $dbh->prepare($sql);
            $r->execute(array($id,$mdp));
            $d = $r->fetch();
        //$res=pg_query($dbh, $sql);
        if($d) {
            $_SESSION['id']=$id;
            $_SESSION['membre']=TRUE;
            header("location:succes.php");
            die();       
        }
        else {
            $_SESSION['membre']=FALSE;
            header("location:index.php");
            die();
        }
    } catch (PDOException $ex) {
        die('echec : '.$ex->getMessage());
     
    }

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 99
    Par défaut
    Citation Envoyé par MaitrePylos Voir le message
    Bonjour,

    C'est tout a fait normal que cela ne fonctionne pas, tu utilises deux technologies différentes (PDO et driver natif) pour réaliser tes requêtes.

    Tu dois continuer en PDO et rester en PDO pour que cela fonctionne et oublier pg_query (ou alors l'inverse, mais je ne te le conseilles pas).

    Essaye ceci :

    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
     
    <?php
    session_start();
    require 'connect.php'; 
    $id=$_POST['id'];
    $mdp=$_POST['password'];
    //$sql= "SELECT * FROM vv_utilisateur  WHERE id='$id' AND mdp='$mdp'";
     
    try {
     
            $sql = 'SELECT * FROM vv_utilisateur  WHERE id=? AND mdp=?';
            $r = $dbh->prepare($sql);
            $r->execute(array($id,$mdp));
            $d = $r->fetch();
        //$res=pg_query($dbh, $sql);
        if($d) {
            $_SESSION['id']=$id;
            $_SESSION['membre']=TRUE;
            header("location:succes.php");
            die();       
        }
        else {
            $_SESSION['membre']=FALSE;
            header("location:index.php");
            die();
        }
    } catch (PDOException $ex) {
        die('echec : '.$ex->getMessage());
     
    }
    Merci Maitre ! Ton code marche, maintenant je m’attelle à le comprendre

    Ce qui m'inquiète c'est qu'il ne trouve pas mon utilisateur alors qu'il est dans ma base. Je vais me mettre à régler ça après !

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Attention, je ne suis pas sur de


Discussions similaires

  1. [PostgreSQL] [PostgreSQL] Problème de syntaxe (NULL) avec PHP et Postgresql
    Par el_butcho dans le forum PHP & Base de données
    Réponses: 40
    Dernier message: 16/07/2006, 18h28
  2. [Sécurité] Pb authentification PHP
    Par bodybody22000 dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2006, 09h28
  3. Script page administration et authentification Php
    Par mastercartman dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 11/03/2006, 17h34
  4. [XML] [cURL] Authentification Php récupération de données
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/02/2006, 14h23
  5. [PHP et PostgreSQL] erreur de pg_exec mais requete valide
    Par guipom dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 25/03/2005, 19h03

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