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 :

tester les données entrées dans la formulaire


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 31
    Points : 22
    Points
    22
    Par défaut tester les données entrées dans la formulaire
    bonjour,

    Je construis une petite formulaire voila 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
     
    <form name="client" method="post" action="Untitled-3.php">
    <table border="0" bgcolor="#99CCFF"  width="190"height="200" >
    <tr><td width="184"  align="center"><em><strong>ESPACE MEMBRE</strong></em>
    <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <input type="text"  name="email" value="entrer votre email" />
    <tr><td align="center"><em>Votre code</em> </td>
    </tr>
     <tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
         <input type="text" name="code" />
     <tr><td align="center"><input type="submit" name="buttonOK" value="OK">
    <tr><td><span class="Style3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cliquer ici si vous avez oubliez</span></td>
    </tr>
    <tr><td><span class="Style3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; votre code client</span></tr>
    </table>
    </form>
     
    </body></html>
    et je fait connexion au base de donne

    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
     
    <?php
    $e=$_POST['email'];
    $f=$_POST['code'];
    if($_POST['buttonOK']=='OK')
    {
    if (empty($_POST['email']) || empty($_POST['code']))
    {
    echo"vous devez remplir tous les champ";
    }
    else
    {
    $connexion=mysql_connect('localhost','root',"") or die ("connexion impossible.");
    $db=mysql_select_db('proj',$connexion) or die ("base de données non accessible");
    $requete = "select * from client";
    $result = mysql_query($requete) or die ("Execution impossible de la requete");
    while ($lign=mysql_fetch_array($result))
    { 
    $a=$lign['mail'];
    $b=$lign['psw'];
    }
     if (($e==$a) && ($f==$b))
    {
     
    echo"WELCOME";
    }
    else 
    {echo"verifier votre donnee";
    }
    }
    }
    ?>
    la probleme et au niveau de test effecuté.
    tout d'abord j'essaie dinserer quelques champ dans la bd qui est construite de 2 champ "mail" et "psw".
    Mon probleme est que le test est parfois bon et ans la plus part des cas, n'est pas vrai.

    Pourriez-vous m'aider ?

  2. #2
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 452
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 452
    Points : 4 601
    Points
    4 601
    Par défaut
    salut,
    l'idee est bonne mais....

    je te conseil de ne pas faire de select * si tu dois verifier un couple log/pass

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql= "select mot_de_passe from ta_table where login='".$variable."' ";
    si tu fais ainsi, seul le mot de passe est retourne (ca evite a des gens malveillants d'obtenir des infos)(surtout si le mot de passe est hash)
    apres, 2 tests :
    1) la requete doit retourner qu'une seule ligne (car ton login est ton mail... donc unique)
    si c'est bon, test 2 :
    2) le mot de passe est le meme...

    note : pour connaitre le nombre de lignes que retourne une requete utilise mysql_num_rows($result);
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    mais si je bien compris comme ca on fait pas le test de nom d'utilisateur si on test seulement sur le mot de passe alors il peut n'importe utilisateur ecrire seulement un mot de passe juste "meme si non utlisateur faux" entrer
    de plus la commande mysql_num_rows le wamp server ne le connait pas in m'affiche le msg suivant
    "mysql_fetch_array(): supplied argument is not a valid MySQL "
    svp detailler un peut votre explication pour bien comprendre meme si vous faite un exemple svp
    je vous remerci

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 452
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 452
    Points : 4 601
    Points
    4 601
    Par défaut
    hmm... exemple concret...
    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
    <?php
    if(empty($_POST["btvalid"]))
    {//si le formulaire n'a pas ete envoye
    ?>
    <form method="POST" action="#">
     login : <input type="text" name="log" value="" />
     pass :<input type="password" name="pass" value="" />
     <input type="submit" name="btvalid" value="Connect" />
    </form>
    <?php
    }
    else
    {
    mysql_connect("ip", "user", "pass") or die ("connexion a mysql impossible");
    mysql_select_db("ma_base") or die ("connexion a la base impossible");
    $result=mysql_query("select champ_pass from ma_table where cham_login='".$_POST["log"]."' ");
    if(mysql_num_rows($result)!=1)
    {//si mysql ne retourne pas une seule ligne, c'est qu'il y a un probleme
    //ou mysql n'a pas trouve le login, ou il y en a plus d'un
    //dans ces cas, ca ne sert a rien de continuer les tests
    echo 'couple login/pass faux';
    }
    else
    {
    $row=mysql_fetch_aray($result);
    if($row["champ_pass"]!=$_POST["pass"])
    {
    echo 'couple login/pass faux';
    }
    else
    {
    echo 'OK !';
    }
    }
    }
    ?>
    => je ne l'ai pas tester.
    j'espere que ca t'aidera a mieux comprendre
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/03/2008, 11h32
  2. conserver les valeurs entrées dans un formulaire
    Par mitmit dans le forum Langage
    Réponses: 5
    Dernier message: 03/05/2007, 10h09
  3. [MySQL] récupérer les données mysql dans un formulaire
    Par cali62100 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/04/2007, 14h17
  4. Recuperer les données saisie dans un formulaire
    Par hunzi dans le forum XMLRAD
    Réponses: 3
    Dernier message: 29/08/2006, 15h22
  5. Filtrer sur les données vides dans un formulaire
    Par jevany dans le forum Access
    Réponses: 7
    Dernier message: 29/05/2006, 08h50

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