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 :

verifier des login depuis une table


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut verifier des login depuis une table
    Bonjour,
    j'ai une base contenant des login et des mot de pass,
    je vouvrais que si une met son login et son mot de pass le le programme verifie si ces parametres se trouve dans la base et la paersonne pourra ainsi se connecter
    merci de m'aider de voir mon erreur sur la partie non commentée

    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
     
     
    <?php 
    		$login = 'ambodj';
    		$mp = 'ambodj';
    		$conex = mysql_connect('localhost',$login,$mp); # connexion au serveur
    		#$bdd = mysql_db('gid12') or die ('erreur d\'ouverture'); # on selectionne la base gid12
    		$req = ('select login,mot_pass from auteur'); # requete sur la table auteur 
    		$reqresult = mysql_query ($req,$conex);
     
    		$mdp_admin=$_POST['mdp_admin'];
    		$login_admin=$_POST['login_admin'];
    		$tuple_admin=array($login_admin,$mdp_admin);
     
    		#if (isset($_POST['Connexion'])){
    			while ($tuple = mysql_fetch_row($reqresult)) {
    				if($tuple==$tuple_admin)
    					{
    						$condition=1;
    						break;	
     
    						/*echo 'connection réussie !!!'.'</br>';
    						echo '<ul>';
    						echo '<li>'.'<a href="ajouter.php"> Ajouter un document ou un ouvrage </a> '.'</br>';
    						echo '<li>'.'<a href="supprimer.php"> Supprimer un document ou un ouvrage </a> '.'</br>'; 
    						echo '<li>'.'<a href="modifier.php"> Modifier un document ou un ouvrage </a> '.'</br>'; 
    						echo '</ul>'; */
    					}
     
    				/*else {
    				echo 'Login ou mot de passe erroné !!!'.'</br>';
    				echo 'Pour retourner Accueil : '.'<a href="index.html"> Cliquer ici </a>'; 
    				}*/
    			}
    		#}
     
    ?>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Tu prévois de récupérer dans la Bdd tous les auteurs pour ensuite parcourir en boucle chaque résultat pour tenter de trouver l'auteur en question.
    Je dirais que c'est un peu contre productif, quand bien même il y ait peu d'auteurs.

    En SQL il est possible de faire ça en 1 requête, de vérifier l'existence (ou non) d'un auteur.
    Exemple :
    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
    // Connexion à la Bdd effectué ici
     
    if (isset($_POST['mdp_admin'], $_POST['login_admin'])) {
        $mdp_admin = mysql_real_escape_string($_POST['mdp_admin']);
        $login_admin = mysql_real_escape_string($_POST['login_admin']);
        //
        $sql = "SELECT COUNT(*) AS total, id_auteur
        FROM auteur
        WHERE mdp_admin = '".$mdp_admin."'
        AND login_admin = '".$login_admin."'";
        $auteur_rs = mysql_query($sql, $conex);
        $auteur_tot = mysql_fetch_assoc($auteur_rs);
        //
        if ((int)$auteur_tot['total'] === 1) {
            // Ok. Cet auteur existe.
        }
    }
    J'ai entre autre rajouter une vérification des données reçues en POST, de même des mysql_real_escape_string pour protéger les chaines et éviter une SQL injection.

    Par ailleurs, je remarque que tu prévois de créer des liens comme ajouter, modifier, supprimer suite à cette connexion.
    Or, lors du clic sur un de ces liens il faudra à nouveau s'identifier car il manque un mécanisme de mémorisation de l'auteur pour le permettre de naviguer sur le site sans devoir se ré-identifier à chaque fois.

    Fais des recherches concernant les SESSIONS et un système d'identification à part, c'est le principe le plus couramment utilisé.

  3. #3
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut
    Bonjour
    Merci Runcodephp pour votre correction et orientation.
    je suis debutant en developpemene web et j'ai un peu du mal à voir pourquoi le programme ne marche pas quant je met mon login et mon mot de pass et que je click ensuite sur Connexion:
    j'ai mis en piece-jointe ma page 'accueil (index.php) et mon fichier css (bdd.css)

    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
     
     
    <?php 
    		$login = 'ambodj';
    		$mp = 'ambodj';
    		$conex = mysql_connect('localhost',$login,$mp); # connexion au serveur
     
    		if (isset($_POST['mdp_admin'], $_POST['login_admin'])) {
    			$mdp_admin = mysql_real_escape_string($_POST['mdp_admin']);
    			$login_admin = mysql_real_escape_string($_POST['login_admin']);
    			$sql = "SELECT COUNT(*) AS total, id
    			FROM auteur
    			WHERE mdp_admin = '".$mdp_admin."'
    			AND login_admin = '".$login_admin."'";
    			$auteur_rs = mysql_query($sql, $conex);
    			$auteur_tot = mysql_fetch_assoc($auteur_rs);
    			if ((int)$auteur_tot['total'] === 1) {
    				echo 'connection réussie !!!'.'</br>';
    				 echo '<ul>';
    				 echo '<li>'.'<a href="ajouter.php"> Ajouter un document ou un ouvrage </a> '.'</br>';
    				 echo '<li>'.'<a href="supprimer.php"> Supprimer un document ou un ouvrage </a> '.'</br>'; 
    				 echo '<li>'.'<a href="modifier.php"> Modifier un document ou un ouvrage </a> '.'</br>'; 
    				 echo '</ul>'; 
    				// Ok. Cet auteur existe.
    			}
     
    			else {
    				echo 'Login ou mot de passe erroné !!!'.'</br>';
    				echo 'Pour retourner Accueil : '.'<a href="index.php"> Cliquer ici </a>'; 
    			}
    		}		
     
     
    	?>
    Fichiers attachés Fichiers attachés

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Ce index.php contient un formulaire contenant un champ "auteur", un champ "textfield2" puis un champ "type_doc".

    Pour le moment ça me semble pas utile car nulle part on voir un système d'identification.
    Il aurait fallut cette partie (le formulaire) qui s'occupe à saisir le login/pass en question.


    Puis dire que "ça ne marche pas" n'est malheureusement pas une information pertinente, ça ne dit rien d'ailleurs.
    Il faut expliquer qu'est-ce que tu obtiens, comme :
    Obtient tu une erreur type 404 (page inconnue) ?
    Une page blanche ?
    Le message "connection réussie !!!" ou "Login ou mot de passe erroné !!!"
    Ou autre ...


    Rajoute provisoirement ceci dans ton code :
    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
     
        $sql = "SELECT COUNT(*) AS total, id
        FROM auteur
        WHERE mdp_admin = '".$mdp_admin."'
        AND login_admin = '".$login_admin."'";
        $auteur_rs = mysql_query($sql, $conex);
        $auteur_tot = mysql_fetch_assoc($auteur_rs);
     
    print_r($_POST);
    echo $sql.'<br />';
    echo 'Nombre de résultat : '.$auteur_tot['total'].'<br />';
     
        //
        if ((int)$auteur_tot['total'] === 1) {
            // Ok. Cet auteur existe.
        }
    Histoire de constater visuellement ce que contient POST et la chaine de requête et le nombre de résultat.

    Mais penche toi sur les sessions en Php, il te manque un système de persistence, car encore une fois, pour mettre en place un espace "Admin" il faut quelque chose qui mémorise QUI s'est identifié.
    -> Les sessions


    Au passage, et si cela n'est pas fait, active l'affichage des erreurs en Php et MySQL.
    Dans le php.ini : display_errors à On, et mysql.trace_mode à On

    Aussi, un saut de ligne en HTML c'est <br /> (et non </br>)
    De même qu'il n'est pas correcte de mettre des <br /> entre les <li>. Si on souhaite que chaque <li> soient des lignes, on définie coté CSS un display : block; (que ces LI soient des éléments de types blocs).

  5. #5
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut
    merci pour tout.
    En fait c'est je suis loin d'etre un programmeur et c'est la premiere fois que je m'essaie à des choses similaires.
    c'est pourquoi des erreurs bizar, bref,

    sinon dans ma page index.php j'ai une formulaire qui contient auteur, typr de document et theme et si tout se passe bien, a chaque fois que je remplie une de ces cases et je click envoie , ça doit me renvoyer vers une page php qui permettrai de faire une recherche dans ma table auteur par exemple ou theme...

    Encore une fois merci de votre AIDE

  6. #6
    Inactif  
    Profil pro
    " "
    Inscrit en
    Janvier 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : " "

    Informations forums :
    Inscription : Janvier 2008
    Messages : 330
    Par défaut
    une derniere chose,
    si je veux que lorseque je click sur "connexion" ça me redirige vers la page admin.php parce que pour le moment j'arrive à verifier si les login et mot de passe sont dans la base

    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
     
    if ((int)$auteur_tot['total']==1) {
     
    					 echo 'connection réussie !!!'.'<br/>';
    					 echo '<ul>';
    					 echo '<li>'.'<a href="ajouter.php"> Ajouter un document ou un ouvrage </a> ';
    					 echo '<li>'.'<a href="supprimer.php"> Supprimer un document ou un ouvrage </a>'; 
    					 echo '<li>'.'<a href="modifier.php"> Modifier un document ou un ouvrage </a> '; 
    					 echo '</ul>'; 
     
    			}
    			else {
    				echo 'Login ou mot de passe erroné !!!'.'<br/>';
    				echo 'Pour retourner Accueil : '.'<a href="index.php"> Cliquer ici </a>'; 
    			}
    je veux qu'une fois que je trouve (int)$auteur_tot['total']==1 à la ligne 2, je fais en sorte que si je click sur "connexion " je me redirige vers une page où j'aurais les liens supprimer, ajouter ,....

    ma question est comment gerer le boton "connexion" pour que ça declanche cela?
    merci par avance

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

Discussions similaires

  1. [Python 2.X] extraire des informations depuis une table html
    Par overider dans le forum Général Python
    Réponses: 0
    Dernier message: 03/07/2014, 14h03
  2. Afficher des images depuis une table dans combobox
    Par sihammaster dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/04/2010, 19h51
  3. Réponses: 1
    Dernier message: 06/10/2009, 19h56
  4. [MySQL] récupérer des données depuis une table mysql
    Par godbless dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/10/2008, 13h04
  5. recuperation des donnees depuis une table
    Par nadia123456 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2008, 15h35

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