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 :

formulaire connexion membre [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut formulaire connexion membre
    bonjour,

    Voilà j'ai déjà un formulaire d'inscription (il fonctionne),
    j'ai dans ma base de donnée ces champs: identifiant et mot_de_passe (et bien d'autre, mais ceux-ci sont les principaux que je voudrais utiliser),

    voici mon formulaire de connexion:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <h3 class="h3_index">Veuillez vous connecter pour entrer.</h3>
    <form class="form_index" action="connexion.php" method="post">
    	<label class="label_index"for="identifiant">Identifiant:</label> <input name="identifiant"class="input_index" type="text" id="identifiant" required="required" value="">
    	<br>
    	<label class="label_index"for="password">Mot de passe:</label> <input name="pass" type="password"id="password" required="required"value="">
    	<input class="input_connection_index" type="submit" name="connection" value="Connection">
    	<a href="inscription.php" class="a_index"><input class="input_inscription_index" type="button" value="Inscription"></a>
    </form>

    voici mon code connexion.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
    if(isset($_POST['connection'])){
    $identifiant=$_POST["identifiant"];
    $mot_de_passe=$_POST["pass"];
     
    if(!empty($_POST['pass'])&& !empty($_POST['identifiant']))
    {
    echo 'le champ est bien rempli  ';
    }
    else
    {
    echo 'mot de passe et/ou identifiant non correcte';
    }
    }
    //vérifier s'il y a bien l'identifiant et mot de passe dans la bdd
    $mysqli = new mysqli("localhost", "root", "xxx", "xxx");
    if (mysqli_connect_errno()) {
        printf("Échec de la connexion : %s\n", mysqli_connect_error());
        exit();
    $stmt=mysqli_query("SELECT identifiant,mot_de_passe FROM membres");
    if(!empty($_POST['pass'])&& !empty($_POST['identifiant'])){
    if ($_POST['identifiant']==$identifiant) && ($_POST['pass']==$mot_de_pass)){
    echo 'vous êtes un membre';
    }
    else{
    echo 'vous n\'etes pas m\'embre';}
    }
    et là j'ai un problème, j'aimerais dire que si l'identifiant et le mot de passe se trouve dans ma base de donnée c'est donc un membre et il peut donc entrer, et s'il ne l'est pas alors je le renvoi sur la page d'inscription...mais comme vous pouvez le constater je m'y prend mal...

    auriez-vous un tuto ou un example à me donner?
    merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    apres la verification du POST
    met ta requette avec une clause
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $stmt=mysqli_query("SELECT identifiant,mot_de_passe FROM membres WHERE identifiant=='$identifiant' AND mot_de_passe=='$mot_de_passe' ");
    //verification si il ya un resultat dans ta base de donne
    $rows=mysql_num_rows($stmt);
    if($rows==1)
    {
    echo 'vous etes membres'
    }
    j 'espere aussi que t'a pris les devants pour qu'il ai pas deux membres avec les memes identifiants et passe puisque il yara 2 lignes aulieu d'un et cela faussera la requete

  3. #3
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ai fais comme tu m'as dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //vérifier s'il y a bien l'identifiant et mot de passe dans la bdd
    $stmt=mysqli_query($query,'SELECT identifiant,mot_de_passe FROM membres WHERE identifiant=='$identifiant' AND mot_de_passe=='$mot_de_passe'');
    //verification si il ya un resultat dans ta base de donne
    $rows=mysql_num_rows($stmt);
    if($rows==1)
    {
    echo 'vous etes membres';
    }
    j'ai d'ailleurs rajouter ";" après l'écho ...

    en fesant comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysqli_query($query,'SELECT identifiant,.....
    j'ai une erreur:
    syntax error, unexpected '$identifiant' (T_VARIABLE)
    si je fais comme toi j'ai 2 erreures:
    mysqli_query() expects at least 2 parameters, 1 given ligne 22
    c'est celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $stmt=mysqli_query("SELECT identifiant,mot_de_passe FROM membres WHERE identifiant=='$identifiant' AND mot_de_passe=='$mot_de_passe' ");
    et la seconde erreur:
    mysql_num_rows() expects parameter 1 to be resource, null ligne 24
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rows=mysql_num_rows($stmt);

  4. #4
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    en cherchant un peu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if($stmt=mysqli_query($mysqli,"SELECT identifiant,mot_de_passe FROM membres WHERE identifiant==$identifiant AND mot_de_passe==$mot_de_passe ")){
    //verification si il ya un resultat dans ta base de donne
    $rows=mysqli_stmt_num_rows($stmt);
    if($rows==1)
    {
    echo 'membres';
    }
    }
    je n'ai pas d'erreur mais je n'ai pas l'écho qui me dit que je suis membre, alors que je suis bien dans la base de donnée et que l'identifiant et le mot de passe est correcte :/

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    cest juste que je suis toujours ancienne version mysql, j'ai test celui ci ca devrait passer pour toi aussi pense juste a changer le nom de base et des colone si besoin
    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
     
    <?php
    if(isset($_POST) && !empty($_POST['identifiant']) && !empty($_POST['pass'])) 
    {
    $login=$_POST['identifiant'];
    $passe=$_POST['pass'];
    $connect=new mysqli("localhost", "root", "","xxx");
    $requete="SELECT identifiant,passe FROM membres WHERE identifiant='$login' AND passe='$passe' ";
    $result=$connect->query($requete);
    if($connect->affected_rows==1)
     
    {
    echo 'vous etes membre';
    }
    else
    {
    echo 'vous devez etre membre';
    }
    }
    ?>

  6. #6
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT identifiant,mot_de_passe FROM membres WHERE identifiant==$identifiant AND mot_de_passe==$mot_de_passe "
    Ca correspond à quoi == en SQL ?

    Sinon, dans ton premier code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $mysqli = new mysqli("localhost", "root", "xxx", "xxx");
    if (mysqli_connect_errno()) {
        printf("Échec de la connexion : %s\n", mysqli_connect_error());
        exit();
    $stmt=mysqli_query("SELECT identifiant,mot_de_passe FROM membres");
    en dehors du fait que le if n'est pas fermé, pourquoi crées-tu une instance de classe mysqli alors que tu utilises la forme procédurale ?
    Sans parler d'autres erreurs conceptuelles du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $identifiant=$_POST["identifiant"];
    $mot_de_passe=$_POST["pass"];
    // ...
    if ($_POST['identifiant']==$identifiant) && ($_POST['pass']==$mot_de_pass)){
    echo 'vous êtes un membre';
    }
    Je vois mal comment on peut faire pour ne pas être membre de ton site !

  7. #7
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    merci topvision

    j'ai bel et bien un echo mais me disant que je suis non membre hors dans ma base de données j'ai 2 "membres" fictifs, j'ai pourtant bien rentré le bon mot de passe et le bon identifiant...

    et en mettant même un non membre j'ai le même écho...

    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
    <?php
    if(isset($_POST) && !empty($_POST['identifiant']) && !empty($_POST['pass'])) 
    {
    $identifiant=$_POST['identifiant'];
    $mot_de_passe=$_POST['pass'];
    $connect=new mysqli("localhost", "root", "","xxx");
    $requete="SELECT identifiant,mot_de_passe FROM membres WHERE identifiant='$identifiant' AND pass='$mot_de_passe' ";
    $result=$connect->query($requete);
    if($connect->affected_rows==1)
    {
    echo 'vous êtes membre';
    }
    else
    {
    echo 'vous devez être membre';
    }
    }
    Nom : membres.PNG
Affichages : 90
Taille : 30,9 Ko

  8. #8
    Membre régulier
    Femme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juin 2014
    Messages : 176
    Points : 74
    Points
    74
    Par défaut
    j'ai trouvé par moi même...

    j'ai rajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //if ($result === FALSE) {
      //die ("Mysql Error: " . $mysqli->error);
    //}
    vu qu'il m'affichait tout le temps que je n'étais pas membre...

    cela m'a indiqué une erreur de champ "pass" dans la clause WHERE...

    j'ai donc fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="SELECT identifiant, mot_de_passe FROM membres WHERE identifiant='$identifiant' AND mot_de_passe='$mot_de_passe' ";
    changer "pass" en "mot_de_passe"...


    et voilà tout est bon ....

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2014
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2014
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    exuse moi pour le retard j'etais souffrant, c'est donc une bonne chose d'avoir pu resoudre ca

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

Discussions similaires

  1. Formulaire accès membre montre le mot de passe
    Par okoweb dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/08/2009, 22h15
  2. [Web Service] Connexion membre à l'aide d'un service web
    Par infiniti dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/07/2009, 15h07
  3. Connexion + membre en global_off
    Par mecmec dans le forum Langage
    Réponses: 1
    Dernier message: 30/12/2007, 11h40
  4. Réponses: 12
    Dernier message: 09/02/2007, 15h12

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