Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3004 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]Problème if else if et connexion

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

[PHP]Problème if else if et connexion

n°1515720
lilougirl8
Posté le 16-02-2007 à 18:26:03  profilanswer
 

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...

mood
Publicité
Posté le 16-02-2007 à 18:26:03  profilanswer
 

n°1515733
Bob2024
...
Posté le 16-02-2007 à 18:41:25  profilanswer
 

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. "

n°1515743
lilougirl8
Posté le 16-02-2007 à 19:06:46  profilanswer
 

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

n°1515832
Alisteroid
Posté le 16-02-2007 à 23:12:28  profilanswer
 

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
n°1515837
lilougirl8
Posté le 16-02-2007 à 23:37:14  profilanswer
 

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

n°1515866
Protohd
Posté le 17-02-2007 à 02:02:12  profilanswer
 

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
n°1515872
-ThX-
Not here anymore
Posté le 17-02-2007 à 02:29:07  profilanswer
 

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 ;)

n°1515880
lkolrn
&lt;comment ça marche?&gt;
Posté le 17-02-2007 à 05:07:49  profilanswer
 

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:  
   

n°1515934
lilougirl8
Posté le 17-02-2007 à 12:01:17  profilanswer
 

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?

n°1516049
lkolrn
&lt;comment ça marche?&gt;
Posté le 17-02-2007 à 22:13:00  profilanswer
 

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 ?

mood
Publicité
Posté le 17-02-2007 à 22:13:00  profilanswer
 

n°1516082
esox_ch
Posté le 18-02-2007 à 09:04:06  profilanswer
 

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..

n°1516267
lilougirl8
Posté le 18-02-2007 à 22:38:37  profilanswer
 

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

n°1516270
lilougirl8
Posté le 18-02-2007 à 22:41:35  profilanswer
 

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
n°1516368
FlorentG
Unité de Masse
Posté le 19-02-2007 à 11:29:20  profilanswer
 

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

n°1516470
lilougirl8
Posté le 19-02-2007 à 14:52:44  profilanswer
 

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

n°1516478
lilougirl8
Posté le 19-02-2007 à 15:09:03  profilanswer
 

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
n°1516498
leto
Posté le 19-02-2007 à 15:47:51  profilanswer
 

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


---------------
--
n°1516606
lilougirl8
Posté le 19-02-2007 à 19:12:21  profilanswer
 

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

n°1516684
lilougirl8
Posté le 19-02-2007 à 23:03:51  profilanswer
 

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

n°1516709
Bob2024
...
Posté le 19-02-2007 à 23:56:36  profilanswer
 

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 ?

n°1516759
lilougirl8
Posté le 20-02-2007 à 09:13:56  profilanswer
 

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...

n°1516779
Bob2024
...
Posté le 20-02-2007 à 09:48:46  profilanswer
 

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  ;)

n°1516794
lkolrn
&lt;comment ça marche?&gt;
Posté le 20-02-2007 à 09:57:02  profilanswer
 

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


n°1516806
Bob2024
...
Posté le 20-02-2007 à 10:16:23  profilanswer
 

Chaque chose en son temps voyons ;) .

n°1516810
lkolrn
&lt;comment ça marche?&gt;
Posté le 20-02-2007 à 10:19:28  profilanswer
 

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

n°1516851
lilougirl8
Posté le 20-02-2007 à 11:17:41  profilanswer
 

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

n°1516862
lilougirl8
Posté le 20-02-2007 à 11:27:21  profilanswer
 

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
n°1516867
Bob2024
...
Posté le 20-02-2007 à 11:40:07  profilanswer
 

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
n°1516868
lkolrn
&lt;comment ça marche?&gt;
Posté le 20-02-2007 à 11:40:19  profilanswer
 
n°1516873
lilougirl8
Posté le 20-02-2007 à 11:43:50  profilanswer
 

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

n°1516883
Bob2024
...
Posté le 20-02-2007 à 11:49:09  profilanswer
 

Il faudrait un else qui recharge ta page à ton

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

n°1516890
lilougirl8
Posté le 20-02-2007 à 11:55:54  profilanswer
 

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

n°1516907
tsuki75
I belong to you my Lord !
Posté le 20-02-2007 à 12:26:52  profilanswer
 

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.
n°1516924
lilougirl8
Posté le 20-02-2007 à 12:58:17  profilanswer
 

oué je connais aussi merci quand meme :)

n°1516937
Bob2024
...
Posté le 20-02-2007 à 13:18:18  profilanswer
 

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
n°1516940
Bob2024
...
Posté le 20-02-2007 à 13:23:32  profilanswer
 

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)

n°1516945
lilougirl8
Posté le 20-02-2007 à 13:32:04  profilanswer
 

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?

n°1516955
Bob2024
...
Posté le 20-02-2007 à 13:43:22  profilanswer
 

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.

n°1516973
lilougirl8
Posté le 20-02-2007 à 13:58:47  profilanswer
 

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

n°1517006
lilougirl8
Posté le 20-02-2007 à 14:26:57  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]Problème if else if et connexion

 

Sujets relatifs
Probleme masterPageprobleme thread pthread_join
[Php] Indexation de document Pdf, Doc ou Xls sous PHP / MySQLJe cherche ce Script PHP
Probleme pour ouvrir POPUP avec IE et flash[PHP] Réponses à un questionnaire en ligne
problème compilation (link)[résolu] Probleme d'appel d'un objet dans ma classe
Probleme de différence firefox/ieProblème DATETIME US
Plus de sujets relatifs à : [PHP]Problème if else if et connexion


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR