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 :

connexion via bdd


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut connexion via bdd
    Bonjour,
    je m’emmêle depuis quelques temps au niveau d'un site qui pourra permettre a certaines personnes de s'y connecter via une base de données.
    Une personne lambda ne peux pas se connecter mais mon problème se situe au niveau de la connexion (lecture des noms de ceux qui peuvent se connecter) de la bdd.
    Une personne tels que admin aura accès a tous les modules alors qu'une personne comme un professeur ou employé aura accès a une seule partie:
    Voici une partie de mon code ainsi que de ma bdd je remercie d'avance pour toute aide apportée :
    Nom : bdd.png
Affichages : 75
Taille : 13,5 Ko
    et voici le bout de code concernant:
    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
    $req->execute(array('pass' => $pass,'login' => $login)) or die(print_r($req->errorInfo()));
     
    	// récuperation des données pass et login (une seule entrée possible)
    $donnee = $req->fetch();
     
    	// fermeture du curseur
    $req->closeCursor();
     
     
    // On vérifie si le formulaire de connexion est rempli
    // Voir aussi une gestion de session PHP
    if( isset( $login, $pass ) ) {
        // On cherche une personne avec ce login et mot de passe
        $requete = $bdd->prepare('
            SELECT *
            FROM identifiant
            WHERE
                login = ?
                AND pass = ?;'
        );
        $requete->execute( array( $login, $pass ) );
        $prof = $requete->fetch();
        $requete->closeCursor();
     
        // Si une personne existe
        if( $prof ) {
            // On cherche les modules que la personne à le droit de voir
    		echo '<h1 class="warning">Acces denied</h1>';
            $requete = $bdd->prepare( '
                SELECT *
                FROM module
                WHERE admin <= ?;'
            );
            $requete->execute( array( $prof['admin'] ) );
            $documents = $requete->fetchAll();
            $requete->closeCursor();
            // On affiche les modules
    		echo 'modulebliblibli</h1>';
            foreach( $documents as $document ) {
                if( $document['admin'] <= $prof['admin'] ) {
                    // Affiche le module
    			echo 'moduleblablabla';
          }
            }
        } else {
    ?>
            <p>Login ou mot de passe inccorect</p>
    Merci d'avance

  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
    Quel est ton problème avec ce code ? Il ne fonctionne pas ? Qu'obtiens-tu ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Le code doit surement fonctionner mais je dois avoir un problème au niveau de ma base de donnée:
    Lors de la connexion de l'administrateur par exemple voici le résultat:
    Nom : acces.png
Affichages : 57
Taille : 14,6 Ko

    Merci.

  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
    Quelle est la ligne 57 ?

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    la ligne 57 correspond à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete->execute( array( $prof['admin'] ) );

  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
    $prof correspond à une ligne de ta table "identifiant", il n'y a donc pas "admin" dedans.
    Quelle est la structure de la table "module" ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Ha je vois le problème en effet

    Pour ta question precedente voici la structure: Nom : module.png
Affichages : 57
Taille : 4,8 Ko

    Merci pour l'aide précédente, cela m'aide énormément a mieux comprendre le fonctionnement

  8. #8
    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
    Comment est stockée l'information qu'un utilisateur a le droit d'accéder à un module.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Les modules sont stockés dans noms. Je compte le faire directement en code je pense a moins qu'il existe une solution plus simple. Si une personne se connecte avec tel identifiant/mdp alors il aura accès par exemple a l'id 1,3,7 etc...

  10. #10
    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
    Je ne comprends pas bien : tu nous dis que l'accès aux modules ne fonctionne pas mais tu nous dis aussi qu'elle n'est pas encore écrite ?

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Non l’accès aux modules n'est pas encore écrit mais le problème ici se situe au niveau de la connexion . Ce qui fonctionne c'est si une personne lambda se connecte son accès est refusé mais si une personne est inscrite dans la bdd le message précédent s'affiche .

  12. #12
    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
    L'erreur vient du fait que ta partie module est incomplete.

  13. #13
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Hum je comprends que je ne puisse pas acceder aux modules mais j'ai deux questions:

    1/ pourquoi dans ce cas "Acces denied" s'affiche alors que la connexion semble correcte ?
    2/Pour le moment j'ai mit du texte comme par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo 'exemple module 1</h1>';
            foreach( $documents as $document ) {
                if( $document['admin'] <= $prof['admin'] ) {
    Le texte s'affiche correctement après le message d'erreur. Donc le code et la bdd paraissent corrects ?(a part le :"$prof correspond à une ligne de ta table "identifiant", il n'y a donc pas "admin"" )

    Merci en tout cas pour l'aide apportée jusqu'à présent .

  14. #14
    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
    C'est toi qui a mis "Access denied" dans le cas ou la personne existe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // Si une personne existe
        if( $prof ) {
    		echo '<h1 class="warning">Acces denied</h1>';

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Haaa autant pour moi j'ai confondu avec le deuxième.

    Merci pour l'éclaircissement

Discussions similaires

  1. Tester connexion via BDD
    Par Amiral62 dans le forum C#
    Réponses: 6
    Dernier message: 04/10/2013, 16h35
  2. connexion à une BDD Oracle via powershell sous Windows R2 2008
    Par phinestra dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 04/12/2012, 16h47
  3. Connexion à une BDD SQL Server via postgreSQL
    Par siin44 dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 26/01/2012, 15h15
  4. [XL-2003] Connexion à une BDD via ODBC
    Par skan_one dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/07/2009, 16h24
  5. [WinDev] Connexion à une BDD Oracle via ODBC
    Par Morgoth777 dans le forum WinDev
    Réponses: 2
    Dernier message: 01/12/2006, 14h34

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