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 formulaire php


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 0
    Points
    0
    Par défaut Authentification formulaire php
    Bonjour je dois faire un formulaire pour la connexion
    j'ai déja stocké dans ma base de donnée 2 utilisateurs (juste pour tester)
    le problème c'est que lors de la connexion j'ai une page blanche et rien n'est affichée

    Voici mes codes:
    authentification.php (contient le formulaire)
    -------------------------------------------------------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <b><i> Veuillez saisir votre Nom,Prenom et votre mot de passe SVP! </b></i>
    		<form align="right" action="traitement.php" method="post"> <br><br><label>Nom :    </label><input name="identifier" value="">
    							 <br><br><label>Prenom :    </label><input name="identifier" value="">
    							 <br><br><label>Mot de passe    :    </label><input type="password" name="identifier" value=""/>
    							 <br><br><input type="submit" name="envoie" value="Se connecter"/>
    		  </form>
    -------------------------------------------------------------------------

    pour l'autre qui fait le traitement voici le code:
    traitement.php

    -------------------------------------------------------------------------
    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
    <?php
     
        $BD_serveur     = "localhost";
        $BD_utilisateur = "root";
        $BD_motDePasse  = "";
        $BD_base        = "base";
    	$message='';
     $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
            or die("Impossible de se connecter au serveur de bases de données.");
       mysql_select_db($BD_base,$db)
            or die("Impossible de se connecter à la base de données.");
     
     
    // Si le tableau $_POST existe alors le formulaire a été envoyé
         // Le nom est-il rempli ?
        if(empty($_POST['Nom']))
        {
          $message = 'Veuillez indiquer votre nom svp !';
        }
    	elseif(empty($_POST['Prenom']))
        {
          $message = 'Veuillez indiquer votre prenom svp !';
        }
          // Le mot de passe est-il rempli ?
          elseif(empty($_POST['mdp']))
        {
          $message = 'Veuillez indiquer votre mot de passe svp !';
        }
     
    $sql='select * 
    	  from users';
          $req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
     
    while($data=mysql_fetch_assoc($req))
    {
    if($_POST['Nom'] == $data["Nom"] &&$_POST['Prenom'] == $data["Prenom"] &&$_POST['mdp'] == $data["mdp"])
     {$message = 'Bienvenue '. $data["Nom"] .' !';}
    /*else{
    echo "Veuillez connecter SVP";
    include("authentification.php");}
    }*/
    mysql_close();
       } 
    ?>

    Cordialement
    xxx_xxx_xxx

  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 n'as pas besoin de lire tous tes utilisateurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $sql="SELECT COUNT(*) 
    	  FROM users WHERE mdp = '" . mysql_real_escape_string($_POST['mdp']) . "' AND ' . Nom = '" . mysql_real_escape_string($_POST['Nom']) . "' AND ' . Prenom = '" . mysql_real_escape_string($_POST['Prenom']) . "'";
          $req=mysql_query($sql);
    $result = mysql_fetch_row($req);
    if ($result[0] == 1) {
      // c'est bon
    }
    else {
       // pas bon
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    D'abord je vous remercie pour votre réponse
    mais
    J'ai pas compris pourquoi tu as ajouté count(*) on n'a pas besoin de compter le nombre d'utilisateur
    j'ai fais mysql_fetch_array pour parcourir la base et recherche les données saisie j'ai modifie quelques parties du code il me dirige vers la page que j'ai mentionné sans faire les test si les champ sont tous rempli

    Voici le 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
    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
    48
    49
    50
    51
    <?php
    session_start();
        $BD_serveur     = "localhost";
        $BD_utilisateur = "root";
        $BD_motDePasse  = "";
        $BD_base        = "base";
    	//$message='';
    	$Nom=$_POST['Nom'];
    	$Prenom=$_POST['Prenom'];
    	$mdp=$_POST['mdp'];
     
     $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
            or die("Impossible de se connecter au serveur de bases de données.");
       mysql_select_db($BD_base,$db)
            or die("Impossible de se connecter à la base de données.");
     
    	// Le nom est-il rempli ?
        if(empty($Nom))
        {
          $message = 'Veuillez indiquer votre nom svp !';
        }
    	if(empty($Prenom))
        {
          $message = 'Veuillez indiquer votre prenom svp !';
        }
          // Le mot de passe est-il rempli ?
        if(empty($mdp))
        {
          $message = 'Veuillez indiquer votre mot de passe svp !';
        }
     
    	$sql='select * 
    	  from users';
    	  //where Nom='".$Nom."' AND Prenom='".$Prenom."' AND mdp = ("lorque je mets le where ici il me gener une erreur")'".$mdp."' 
          $req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
     
     
    mysql_close();
     
    $res= mysql_num_rows($req);
    if ($res==0)
    {
    echo "Connexion echoue, veuillez réessayer SVP </br>"; // a revoir
    }
    else
    {
     // --- enregistrement en session de l'utilisateur
     $_SESSION["Nom"] = $Nom;
     // --- redirection en fonction de l'utilisateur
    header("Location: acceuil2.php");}
          ?>
    autre chose est-ce que même si je ne remplis pas tous les champs il me dirige vers accueil2.php


    Merci

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    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
    48
    49
    50
    51
    <?php
    session_start();
        $BD_serveur     = "localhost";
        $BD_utilisateur = "root";
        $BD_motDePasse  = "";
        $BD_base        = "base";
    	//$message='';
    	$Nom=$_POST['Nom'];
    	$Prenom=$_POST['Prenom'];
    	$mdp=$_POST['mdp'];
     
     $db=mysql_connect($BD_serveur, $BD_utilisateur, $BD_motDePasse)
            or die("Impossible de se connecter au serveur de bases de données.");
       mysql_select_db($BD_base,$db)
            or die("Impossible de se connecter à la base de données.");
     
    	// Le nom est-il rempli ?
    	$message = "";
        if(empty($Nom))
        {
          $message = 'Veuillez indiquer votre nom svp !';
        }
    	if(empty($Prenom))
        {
          $message .= ' <br/> Veuillez indiquer votre prenom svp !';
        }
          // Le mot de passe est-il rempli ?
        if(empty($mdp))
        {
          $message .= ' <br/> Veuillez indiquer votre mot de passe svp !';
        }
        if ($message == ""){	
    		$sql="SELECT COUNT(*) 
    	  FROM users WHERE mdp = '" . mysql_real_escape_string($_POST['mdp']) . "' AND Nom = '" . mysql_real_escape_string($_POST['Nom']) . "' AND  Prenom = '" . mysql_real_escape_string($_POST['Prenom']) . "'";
    		$req=mysql_query($sql) or die('Erreur SQl !<br>'.$sql.'<br>'.mysql_error());
    		$result = mysql_fetch_row($req);
    		if ($result[0] == 0)
    		{
    			echo "Connexion echoue, veuillez réessayer SVP </br>"; // a revoir
    		}
    		else
    		{
    		 // --- enregistrement en session de l'utilisateur
    			$_SESSION["Nom"] = $Nom;
    		 // --- redirection en fonction de l'utilisateur
    			header("Location: acceuil2.php");
    		}
    	}else{
    		echo $message;
    	}
    ?>
    Et si t'as des erreurs, tu dois nous les citer pour t'aider à les corriger mais ne pas virer seulement les codes qui les génèrent.

    A+.

  5. #5
    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
    J'ai pas compris pourquoi tu as ajouté count(*) on n'a pas besoin de compter le nombre d'utilisateur
    On compte s'il y en un 1 ou 0.

    Si tu veux recupérer l'id de l'utilisateur par exemple tu peux faire un SELECT id et ensuite regarder le nombre de ligne retournées avec mysql_num_rows
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 0
    Points
    0
    Par défaut
    Bon voila j'ai testé le code ke tu m'a proposé voici le resultat donnée:

    Notice: Undefined index: Nom in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 70

    Notice: Undefined index: Prenom in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 71

    Notice: Undefined index: mdp in C:\Program Files\EasyPHP-5.3.6.0\www\traitement.php on line 72
    Veuillez indiquer votre nom svp !
    Veuillez indiquer votre prenom svp !
    Veuillez indiquer votre mot de passe svp !


    Sachant que les lignes 70,71 et 72 sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       $Nom=$_POST['Nom'];
    	$Prenom=$_POST['Prenom'];
    	$mdp=$_POST['mdp'];

    Merci

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Tu dois d'abord tester si les éléments du formulaire sont envoyés
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['Nom']) && isset($_POST['Prenom']) && isset($_POST['mdp'];))
    {
    // ici tu mets tes codes
     
    }
    A+.

Discussions similaires

  1. [MySQL] Formulaire PHP ->MySQL
    Par shub dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 09/02/2010, 22h42
  2. Authentification Formulaire Php
    Par TheLezard dans le forum Web
    Réponses: 3
    Dernier message: 07/10/2007, 21h42
  3. Nom d'un Formulaire Php
    Par etiennegaloup dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 21h55
  4. Formulaire PHP+ envoi de fichier joint
    Par GraphicProvider dans le forum Langage
    Réponses: 2
    Dernier message: 29/10/2005, 18h12
  5. [MySQL] Formulaire php + bdd = perte des sauts de ligne html ?
    Par sunshine33 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/10/2005, 11h19

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