[PHP]Problème if else if et connexion

Problème if else if et connexion [PHP] - PHP - Programmation

Marsh Posté le 16-02-2007 à 18:26:03    

Bonjour
 
Je débute ne php, je fait un travail de fourmis très long puisque j'y connai rien, mon but, créer un partie administration pout mon site d'agence immobilière...
En gros j'aimerai donc pouvoir :  
créer des annonces
Gérer les annonces
et gerer d'autres services assez simpliste (une barre de coup de coeur avec villa...)
Le site existe deja, mai il n'est pa en php enfin ma parti a moi on va dire que aujourdhui je n'ai aucun controle de la partie annonces car ce nest pas moi qui la gere, c'est pour cela que j'aimerai le faire moi , pour avoir une totale liberté d'action sur mes pages.
 
Donc j'ai commencer un ptit script pour me connecter a la parti administration :

Citation :

<html>
<head></head>
 
 
<body>
 
 
<?php
if (isset($_POST['login']) AND ($_POST['mot_de_passe'])) //Si le visiteur entre le login et le mot de passe  
{    
$login = $_POST['login'];   //On definit login
$mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
}  
 
else    //champs vide
{
 $login = "";
 $mot_de_passe = "";
}  
 
if ($login == "" AND $mot_de_passe == "" )  // Si  login et  mot de passe vide , on affiche la page de connexion
{
?>
<form action="testphp.php" method="post">
       
      Login : <input type="text" name="login" size="10" maxlength="256">
   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">  
   
   <input type="submit" value="connexion">
   
   </form>
<?php    
}  
 
elseif ($login == "Daniel" AND $mot_de_passe == "mechant" ) // Sinon si Login et mot de passe OK on affiche la page  
{  
 ?>
        <script type="text/javascript">
       document.location.replace("http://localhost/panneau-admin.php" );
        </script>  
 <?php
     
}      
else // Sinon on affiche la page avec une erreur
{
?>
<form action="testphp.php" method="post">
       
      Login : <input type="text" name="login" size="10" maxlength="256">
   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">  
   
   <input type="submit" value="connexion"><br><br>
     Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon
   </form>          
<?php    
}
 
 
?>
</body>
</html>


 
Voila ça c'est l'ebauche (tout simple) que j'ai inclus dans ma vrai page, je n'ai pas pompé de script, j'ai fais ça a partir d'exemple...
Le script fonctionne bien mai j'ai un petit "bug"
le message d'erreur n'apparait que quand je tape un mauvai mot de passe, que le login est mauvais il me met directement la page d'entrer... j'ai beau cherché je ne trouve pas.
 
Pourriez vous m'aider?
 
Je mettrai a jour ce topic au fur et a mesure de la création pour eviter de faire 50 post.
Jespere que vous saurez m'aider...

Reply

Marsh Posté le 16-02-2007 à 18:26:03   

Reply

Marsh Posté le 16-02-2007 à 18:41:25    

Tu pourrais expliquer ton probleme un peu mieux et en français s'il te plait
 
 "le message d'erreur n'apparait que quand je tape un mauvai mot de passe, que le login est mauvais il me met directement la page d'entrer... j'ai beau cherché je ne trouve pas. "

Reply

Marsh Posté le 16-02-2007 à 19:06:46    

oui désolé c'est pas très facile a exprimer donc :  
Quand l'utilisateur tape son login et son mot de passe, si il est faux il devrait apparaître un message d'erreur " Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon " (j'ai prévu une condition pour ça)
Cependant ça marche, mais qu'en partie, en fait  
si je tape juste un mot de passe (faux), sans login, le message apparait
Si je tape ke un login sans mot de passe rien n'apparait ça me renvoi vers ma sans message.
Par contre si je rentre les 2 kil son faux ça marche (logique puisque un mot de passe est rentré)
 
Donc ma question comment se fait il que ça marche pr mot de passe mai pas pour login

Reply

Marsh Posté le 16-02-2007 à 23:12:28    

C'est normal car tu as mis :

Code :
  1. if (isset($_POST['login']) AND ($_POST['mot_de_passe'])) //Si le visiteur entre le login et le mot de passe 
  2. {   
  3. $login = $_POST['login'];   //On definit login
  4. $mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
  5. else    //champs vide
  6. {
  7. $login = "";
  8. $mot_de_passe = "";
  9. }


Cela veut dire si le champ login à été saisi ET mot de passe aussi alors
$login = login saisi
$mot de passe = mot de passe saisi
sinon $login=$mot_de_passe = '';

 

Or quand tu ne rentres que le mot de passe ou que le login tu as seulement $_POST['login'] ou $_POST['mot_de_passe'] qui existe et donc tu ne rentres pas dans la condition "if (isset($_POST['login']) AND ($_POST['mot_de_passe'])) " et du  coup tu as $login=$mot_de_passe = ''.
Donc par la suite tu entres dans le if ($login == "" AND $mot_de_passe == "" ) et donc tu raffiches ton formulaire sans message d'erreur.

 

Par contre en mettant ça la place de du code du dessus , tu resouds ton probleme:

Code :
  1. if (isset($_POST['login'])) //Si le visiteur entre le login
  2. {   
  3. $login = $_POST['login'];   //On definit login
  4. }
  5. if(isset($_POST['mot_de_passe']))  //Si le visiteur entre mot de passe
  6. {
  7. $mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
  8. else    //aucun champ n a été saisi
  9. {
  10. $login = "";
  11. $mot_de_passe = "";
  12. }

Message cité 1 fois
Message édité par Alisteroid le 16-02-2007 à 23:15:17
Reply

Marsh Posté le 16-02-2007 à 23:37:14    

ah merci bcp effectivement j'ai fait une erreur je débute donc c pas facile mais bon tt s'apprend...
Je testerai tt ça ken je my remettrai pui si j'ai besoin d'aide je reposterai ici

Reply

Marsh Posté le 17-02-2007 à 02:02:12    

Très bon début.
 
Pour vous faciliter la chose, je ne pourais que vous conseiller d'aller regarder du coté des sessions.
Un petit lien
 
Sans oublier le manuel en ligne, une aide précieuse pour nous tous.


Message édité par Protohd le 17-02-2007 à 02:04:08
Reply

Marsh Posté le 17-02-2007 à 02:29:07    

Alisteroid a écrit :


 
Par contre en mettant ça la place de du code du dessus , tu resouds ton probleme:  

Code :
  1. if (isset($_POST['login'])) //Si le visiteur entre le login  
  2. {   
  3. $login = $_POST['login'];   //On definit login
  4. }
  5. if(isset($_POST['mot_de_passe']))  //Si le visiteur entre mot de passe
  6. {
  7. $mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
  8. else    //aucun champ n a été saisi
  9. {
  10. $login = "";
  11. $mot_de_passe = "";
  12. }



 
Petite erreur : Le "else" sera exécuté ici, si et seulement si, le mot de passe n'a pas été défini. Il ne sera pas exécuté si le login n'a pas été entré.
 

Code :
  1. if (isset($_POST['login'])) //Si le visiteur entre le login  
  2. {   
  3. $login = $_POST['login'];   //On definit login
  4. }
  5. if(isset($_POST['mot_de_passe']))  //Si le visiteur entre mot de passe
  6. {
  7. $mot_de_passe = $_POST['mot_de_passe']; //on definit mot de passe
  8. }
  9.  
  10. if (!isset($_POST['login']) && !$_POST['mot_de_passe']))
  11. {
  12. $login = "";
  13. $mot_de_passe = "";
  14. }


 
Serait plus correct étant donné ton indication ;)

Reply

Marsh Posté le 17-02-2007 à 05:07:49    

Bon début, mais c'est vraiment vraiment le début...
 
Va falloir plancher sérieusement sur PHP, MySQL, HTML & CSS, HTTP(S), définir les différentes fonctionnalités, concevoir la base de données, implémenter la couche d'accès aux données, l'interface, la sécurité, et j'en passe... Autant dire que malgré l'ampleur du projet ça va prendre du temps, beaucoup de temps...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Si tu postes dans le fofo Emploi je te répondrai très certainement, avec des résultats concrets très rapides et robustes :whistle:  
   

Reply

Marsh Posté le 17-02-2007 à 12:01:17    

lol heu je c qu'il va falloir plancher, ce qui est bien c'est que ce que mon site est déja opérationnel actuellement donc j'ai tout le temps qu'il faut pour le faire et etant passionné d'informatique, j'apprend et ça me plait. J'aimerai d'abord réaliser une interface simple, le HTML et CSS c'est pas un souci ça je sait faire...mais je k'ai pa intégré au code ici pour pa alourdir le sujet.
Je suis content d'avoir a commencé a comprendre le fonctionnement de php.
Apparement donc ensuite une fois cela fais il va falloir que je mette ds mes page d'administration des fonction de session pour les securisé je me trompe?

Reply

Marsh Posté le 17-02-2007 à 22:13:00    

Hehe, j'aurais tenté... [:airforceone]
 
 
Pour les sessions c'est ici => http://fr.php.net/manual/fr/ref.session.php, ta nouvelle bible.
 
Mais avant de parler des sessions il faut améliorer ton script d'identification et donc parler des utilisateurs de ta partie admin... A qui sera-t-elle destinée ?

Reply

Marsh Posté le 17-02-2007 à 22:13:00   

Reply

Marsh Posté le 18-02-2007 à 09:04:06    

Dit, on peut acheter des trucs en ligne sur ton site?
 
Parce que j'aimerais bien profité du site que tu as fait du haut de tes connaissances si c'est le cas..

Reply

Marsh Posté le 18-02-2007 à 22:38:37    

non aucun achat en ligne...je suis pas concerné par ça, quand à la partie admin elle est toute petite y aura certainement 2 ou 3 personnes qui pourront acceder a cette partie...
Merci pr le lien, je vai etudier ma nouvelle bible a fond... puis on verra bien

Reply

Marsh Posté le 18-02-2007 à 22:41:35    

Je vien s de lire la correction si je compren bien, il me manquait un "if" car il ne prenait en compte que le mot de passe (et pas le 1er "if) donc au final ça donne :
Si lutilisateur entre login ( on definit login)
Si utilisateur entre mot de passe (on défénit mot de passe)
Si utilisateur entre login et mot de (passe et que c'est vide)
   La j'affiche ma page avec erreur
et ensuite sinon blablabla...

 

?


Message édité par lilougirl8 le 18-02-2007 à 22:43:27
Reply

Marsh Posté le 19-02-2007 à 11:29:20    

lilougirl8 a écrit :


Donc j'ai commencer un ptit script pour me connecter a la parti administration :

Citation :

<html>
<head></head>
 
 
<body>
 
 
<?php
[...]
 
elseif ($login == "Daniel" AND $mot_de_passe == "mechant" ) // Sinon si Login et mot de passe OK on affiche la page  
{  
 ?>
        <script type="text/javascript">
       document.location.replace("http://localhost/panneau-admin.php" );
        </script>  
 <?php
 ...
?>
</body>
</html>



 
Olalala... Y'a aucune sécurité là... Et pis depuis quand on fait des redirections en javascript comme ça ? [:johneh] Va en falloir des heures pour un truc correct, j'espère que tu es vraiment passionnée :D

Reply

Marsh Posté le 19-02-2007 à 14:52:44    

oui je sais qu'y a aucune connexion j'y travail la justement... et c'est galère lol

Reply

Marsh Posté le 19-02-2007 à 15:09:03    

Code :
  1. <html>
  2. <head></head>
  3. <body>
  4. <?php
  5. mysql_connect("localhost", "root", "" );// on se connecte à MySQL
  6. mysql_select_db("administration" );// on sélectionne la base
  7. if (isset($_POST['login'])) //si utilisateur entre login
  8. {
  9. $login = $_POST['login']; //on defini login
  10. }
  11. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  12. {
  13. $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  14. }
  15. else    //Sinon vide
  16.    {
  17.    $login = "";
  18.    $mot_de_passe = "";
  19.    }
  20. if ($login != "" AND $mot_de_passe != "" )  //Si login et mot de passe ne sont pas vide on cherche ds BDD...
  21.   {
  22.   extract($_POST);
  23.    $connexion = mysql_query("SELECT login, password FROM identification" );
  24.  
  25.    $donnee = mysql_fetch_array($connexion);
  26.    }
  27. if ($donnee['login'] = $login AND $donnee['password'] = $mot_de_passe) // Si login et mot de passe correspond on affiche
  28. {
  29. ?>
  30.      Ca marche je suis trop fort lol
  31. <?php
  32.  
  33. elseif ($login == "" AND $mot_de_passe == "" ) //sinon si les 2 champs sont vide on affiche la page forumlaire (pour &er affichage)
  34. {
  35. ?>
  36.   <form action="testphp.php" method="post">
  37.      
  38.       Login : <input type="text" name="login" size="10" maxlength="256">
  39.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  40.  
  41.   <input type="submit" value="connexion"><br><br>
  42.   </form>
  43. <?php  
  44. else //sinon erreur
  45. {
  46. ?>
  47. <form action="testphp.php" method="post">
  48.      
  49.       Login : <input type="text" name="login" size="10" maxlength="256">
  50.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  51.  
  52.   <input type="submit" value="connexion"><br><br>
  53.      Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon
  54.   </form>
  55. <?php
  56.   }
  57. mysql_close(); 
  58. ?>
  59. </body>
  60. </html><?php
  61. mysql_connect("localhost", "root", "" );// on se connecte à MySQL
  62. mysql_select_db("administration" );// on sélectionne la base
  63. if (isset($_POST['login'])) //si utilisateur entre login
  64. {
  65. $login = $_POST['login']; //on defini login
  66. }
  67. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  68. {
  69. $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  70. }
  71. else    //Sinon vide
  72.    {
  73.    $login = "";
  74.    $mot_de_passe = "";
  75.    }
  76. if ($login != "" AND $mot_de_passe != "" )  //Si login et mot de passe ne sont pas vide on cherche ds BDD...
  77.   {
  78.   extract($_POST);
  79.    $connexion = mysql_query("SELECT login, password FROM identification" );
  80.  
  81.    $donnee = mysql_fetch_array($connexion);
  82.    }
  83. if ($donnee['login'] = $login AND $donnee['password'] = $mot_de_passe) // Si login et mot de passe correspond on affiche
  84. {
  85. session_start();
  86. $_SESSION['login'] = $login;
  87. ?>
  88. <script type="text/javascript">
  89.        document.location.replace("http://localhost/panneau-admin.php" );
  90.         </script> 
  91.  
  92. <?php
  93.  
  94. elseif ($login == "" AND $mot_de_passe == "" ) //sinon si les 2 champs sont vide on affiche la page forumlaire (pour &er affichage)
  95. {
  96. ?>
  97.   <form action="testphp.php" method="post">
  98.      
  99.       Login : <input type="text" name="login" size="10" maxlength="256">
  100.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  101.  
  102.   <input type="submit" value="connexion"><br><br>
  103.   </form>
  104. <?php  
  105. else //sinon erreur
  106. {
  107. ?>
  108. <form action="testphp.php" method="post">
  109.      
  110.       Login : <input type="text" name="login" size="10" maxlength="256">
  111.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  112.  
  113.   <input type="submit" value="connexion"><br><br>
  114.      Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon
  115.   </form>
  116. <?php
  117.   }
  118. mysql_close(); 
  119. ?>
 


Voila quen pensez vous, j'ai pofiner puis essayer de donnée plus de possiblité (notament avec la BDD pour ajouter des utilisateur)...
Je prescice que j'ai jamais fais ça de ma vie et que je me sui mis y'a une semaine au php...
Alor bon...les conseils sont les bienvenue et vous voyer que j'y met bcp de bonne volonté


Message édité par lilougirl8 le 19-02-2007 à 19:10:20
Reply

Marsh Posté le 19-02-2007 à 15:47:51    

Mets ton code entre des balises :

Code :

 
Ca sera plus lisible.
Pour apprendre  le PHP, tu peux te diriger vers http://www.siteduzero.com/tuto-3-4 [...] c-php.html


---------------
--
Reply

Marsh Posté le 19-02-2007 à 19:12:21    

voila j'ai travaillé toute l'aprem dessus alor j'ai reusse donc a créer la page de connexion avec session, j'ai créer un BDD avec login mot de passe,
et j'ai reussi à "proteger" le panneau d'administration et les autres page et j'ai aussi créer un bouton de deconnexion pour quitter la session dès qu'on a fini....
Et merci pr le lien c'est sympa je connai deja j'ai commencer a apprendre gràce a ce site

Reply

Marsh Posté le 19-02-2007 à 23:03:51    

Bon... après vérification y'a une erreur, il semble que la connexion se fait avec n'importz quelle login et mot de passe... je vais chercher d'ou viens le probleme...:s

Reply

Marsh Posté le 19-02-2007 à 23:56:36    

Le code de connexion à l'air correcte même si il faudrait penser à la possibilité d'avoir plus d'un utilisateur (il faut un where sur le login dans ton select et si il y a un résultat => verif du password).
Derrière, tu ne t'en sortira pas sans creer de session.
Redirige vers une autre page avec la fonction php 'header'.
Toutes tes pages doivent vérifier l'existence d'une session valide.
Ceci est le début de la base de la base, tu n'as pas le choix.
Tu dis avoir fait des progrès cet aprem, t'en es où du coup ?

Reply

Marsh Posté le 20-02-2007 à 09:13:56    

alors la sur le script je comprend pas.. il me connecte avec n'importe quelle login et mot de passe...
j'ai beau creusé je voi pa ou j'ai fait l'erreur...

Reply

Marsh Posté le 20-02-2007 à 09:48:46    

Arf, je viens de le voir.  

Code :
  1. if ($donnee['login'] = $login AND $donnee['password'] = $mot_de_passe)


== c'est mieux.
Ca m'arrive encore, t'inquiètes  ;)

Reply

Marsh Posté le 20-02-2007 à 09:57:02    

Ui, sauf que comme tu le dis toi-même :

Bob2024 a écrit :

(...) il faudrait penser à la possibilité d'avoir plus d'un utilisateur (il faut un where sur le login dans ton select et si il y a un résultat => verif du password


Reply

Marsh Posté le 20-02-2007 à 10:16:23    

Chaque chose en son temps voyons ;) .

Reply

Marsh Posté le 20-02-2007 à 10:19:28    

C'est l'étape suivante, on y est ! Allez, hop hop hop

Reply

Marsh Posté le 20-02-2007 à 11:17:41    

le probleme c'est que quand je met "==" il me renvoi directement a ma redirection sans passer par la case formulaire, j'avais deja essayer

Reply

Marsh Posté le 20-02-2007 à 11:27:21    

j'ai tjr le meme probleme en changeant j'ai rajouter le where...je bloc fais !ù!$mùùlùl !!!

Code :
  1. if ($login != "" AND $mot_de_passe != "" )  //Si login et mot de passe ne sont pas vide on cherche ds BDD...
  2.   {
  3.   extract($_POST);
  4.    $connexion = mysql_query("SELECT password FROM identification WHERE login" );
  5.  
  6.    $donnee = mysql_fetch_array($connexion);
  7.    }
  8. if ($donnee['password'] == $mot_de_passe) // Si login et mot de passe correspond on affiche
  9. session_start();
  10. $_SESSION['login'] = $login;
  11. ?>
  12.   <script type="text/javascript">
  13.        document.location.replace("http://localhost/panneau-admin.php" );
  14.      </script> 
  15. <?php


Message édité par lilougirl8 le 20-02-2007 à 11:29:10
Reply

Marsh Posté le 20-02-2007 à 11:40:07    

Code :
  1. balbla ... WHERE login = '".$login."'" );


Sinon, il ne sait ce qu'il cherche.


Message édité par Bob2024 le 20-02-2007 à 11:40:54
Reply

Marsh Posté le 20-02-2007 à 11:40:19    

Reply

Marsh Posté le 20-02-2007 à 11:43:50    

merci pour le site c'est vrai que j'ai du mal avec la syntaxe...par contre tjr ce probleme de merdre.. il me renvoi directement a ma page alor qu'il devrai mafficher ma page de connexion... on dirait qu'il ya un probleme  dans la partie ou je verifie si le login et mdp existe

Reply

Marsh Posté le 20-02-2007 à 11:49:09    

Il faudrait un else qui recharge ta page à ton

Code :
  1. if ($login != "" AND $mot_de_passe != "" )"

Reply

Marsh Posté le 20-02-2007 à 11:55:54    

Code :
  1. <?php
  2. mysql_connect("localhost", "root", "" );// on se connecte à MySQL
  3. mysql_select_db("administration" );// on sélectionne la base
  4. if (isset($_POST['login'])) //si utilisateur entre login
  5. {
  6. $login = $_POST['login']; //on defini login
  7. }
  8. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  9. {
  10. $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  11. }
  12. else    //Sinon vide
  13.    {
  14.    $login = "";
  15.    $mot_de_passe = "";
  16.    }
  17. if ($login != "" AND $mot_de_passe != "" )  //Si login et mot de passe ne sont pas vide on cherche ds BDD...
  18.   {
  19.   extract($_POST);
  20.    $connexion = mysql_query("SELECT password FROM identification WHERE login = '".$login."'" );
  21.  
  22.    $donnee = mysql_fetch_array($connexion);
  23.    }
  24. else
  25.    { 
  26.     ?>
  27.   <form action="testphp.php" method="post">
  28.      
  29.       Login : <input type="text" name="login" size="10" maxlength="256">
  30.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  31.  
  32.   <input type="submit" value="connexion"><br><br>
  33.   </form>
  34. <?php
  35.    }
  36. if ($donnee['password'] == $mot_de_passe) // Si login et mot de passe correspond on affiche
  37. session_start();
  38. $_SESSION['login'] = $login;
  39. ?>
  40.   <script type="text/javascript">
  41.        document.location.replace("http://localhost/panneau-admin.php" );
  42.      </script> 
  43. <?php
  44.   }    
  45. else //sinon pas bon  
  46.   { 
  47. ?>  
  48. <form action="testphp.php" method="post">
  49.      
  50.       Login : <input type="text" name="login" size="10" maxlength="256">
  51.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  52.  
  53.   <input type="submit" value="connexion"><br><br>
  54.      Erreur ! Le login ou le mot de passe que vous avez entré n'est pas le bon
  55.   </form>
  56. <?php
  57.   }
  58. mysql_close(); 
  59. ?>


 
C'est ça que tu voulais dire parce si c'est ça ça marche pas :s

Reply

Marsh Posté le 20-02-2007 à 12:26:52    

Si tu débute php, je te conseil de jeter un coup d'oeil sur ce site : http://www.phpdebutant.org/
 
Tout est expliqué pas à pas. Avec les choses à faire et à ne pas faire.


---------------
Mighty to save.
Reply

Marsh Posté le 20-02-2007 à 12:58:17    

oué je connais aussi merci quand meme :)

Reply

Marsh Posté le 20-02-2007 à 13:18:18    

Tiens essaye ça :

Code :
  1. #
  2. if ($donnee['password'] === $mot_de_passe) // Si login et mot de passe correspond on affiche


Message édité par Bob2024 le 20-02-2007 à 13:18:35
Reply

Marsh Posté le 20-02-2007 à 13:23:32    

En vrai, c'est pas beau ce que je te donne et ce n'est même pas sûr que ça marche.
Le problème ici c'est que si il manque le mot de passe ou le login, la variable $donnee['password'] n'est pas initialisée.
Donne lui une valeur "" avant le test et test ensuite :

Code :
  1. ($donnee['password'] != '') and ($donnee['password'] == $mot_de_passe)

Reply

Marsh Posté le 20-02-2007 à 13:32:04    

Voila j'ai tout repris du début, je ne savais pas qu'on pouvais imbriquer des "SI" enfin je le savais mais j'avais oublier carrement, je pense que mes conditions étaient mauvaises c'etait tout mélanger
 

Code :
  1. <?php
  2. mysql_connect("localhost", "root", "" );// on se connecte à MySQL
  3. mysql_select_db("administration" );// on sélectionne la base
  4. if (isset($_POST['login'])) //si utilisateur entre login
  5. {
  6. $login = $_POST['login']; //on defini login
  7. }
  8. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  9. {
  10. $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  11. }
  12. else    //Sinon vide
  13.    {
  14.    $login = "";
  15.    $mot_de_passe = "";
  16.    }
  17. if ($login != "" AND $mot_de_passe != "" ) //Si login et mot de passe ne sont pas vides
  18.    {  
  19.    $connect = mysql_query("SELECT password FROM identification WHERE login = '".$login."'" );//on recupere le mot de passe et on le compare au login
  20.    $identifiants = mysql_fetch_array($connect); //on affiche le résultat
  21.  
  22.     if ($mot_de_passe == $identifiants['password']) //Si le mote de passe est OK  
  23.     { 
  24.         session_start(); // On démarre la session
  25.       $_SESSION['login'] = $login; // On définit la session de l'utilisateur  
  26.       echo'ça marche';
  27.          }
  28.          else // Si mot de passe pas bon : on affiche une erreur
  29.      {
  30.      echo'  <form action="testphp.php" method="post">
  31.      
  32.                Login : <input type="text" name="login" size="10" maxlength="256">
  33.          Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  34.  
  35.          <input type="submit" value="connexion"><br><br>
  36.          Erreur ! Le login ou le mot de passe que vous avez entrer nest pas le bon
  37.            </form>';
  38.      }
  39. }
  40. elseif ($login != "" AND $mot_de_passe == "" ) //sinon Si mot de passse vide (seul) on affiche une erreur
  41. ?>
  42.   <form action="testphp.php" method="post">
  43.      
  44.       Login : <input type="text" name="login" size="10" maxlength="256">
  45.   Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  46.  
  47.   <input type="submit" value="connexion"><br><br> 
  48.   Erreur ! Vous n'avez pas entrez de mot de passe
  49.    </form>
  50. <?php
  51.    }
  52. elseif ($login == "" AND $mot_de_passe != "" )  //sinon Si login vide (seul) on affiche une erreur
  53.    { 
  54. ?>
  55.       <form action="testphp.php" method="post">
  56.      
  57.         Login : <input type="text" name="login" size="10" maxlength="256">
  58.     Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  59.  
  60.     <input type="submit" value="connexion"><br><br> 
  61.     Erreur ! Vous n'avez pas entrez de login
  62.       </form>
  63. <?php
  64.    }
  65. else  //sinon on affiche la page de connexion
  66.    {
  67.    ?>
  68.      <form action="testphp.php" method="post">
  69.      
  70.           Login : <input type="text" name="login" size="10" maxlength="256">
  71.       Mot de passe : <input type="password" name="mot_de_passe" size="10" maxlength="256">
  72.  
  73.       <input type="submit" value="connexion"><br><br>
  74.     </form>
  75. <?php
  76.    }
  77. mysql_close();
  78. ?>


 
Quelqu'un pourrais t'il me dire si c'est OK?

Reply

Marsh Posté le 20-02-2007 à 13:43:22    

C'est beaucoup mieux.
Mais le début n'est pas logique :
Tu mets à blanc les deux champs seulement si le mot de passe n'est pas set.
Fais un seul test pour les deux champs et agit sur les deux en conséquence.

Reply

Marsh Posté le 20-02-2007 à 13:58:47    

oui je vois mon else ne concerne que mot de passe...

Reply

Marsh Posté le 20-02-2007 à 14:26:57    

Code :
  1. if (isset($_POST['login'])) //si utilisateur entre login
  2.    {
  3.    $login = $_POST['login']; //on defini login
  4.    }
  5. else
  6.    {
  7.    $login ="";
  8.    }
  9. if (isset($_POST['mot_de_passe'])) //Si utilisateur entre mot de passe
  10.    {
  11.    $mot_de_passe = $_POST['mot_de_passe']; //on définie mot de passe
  12.    }
  13. else    //Sinon vide
  14.    {
  15.    $mot_de_passe = "";
  16.    }


 
Bon j'ai fait tt bete

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed