Se connecter / S'enregistrer

Résolu Mystere en php!!

Solutions (25)
Tags :
  • Php
  • Programmation
|
merci
Contenus similaires
Meilleure solution
partage
|
Bonjour,

En gros ce que vois dans ton code...

Il manque un else {
Là :
  1. <?php
  2. 15.
  3. 16. $pseudo = $_POST['pseudo'];
  4. 17. $mdp = $_POST['mdp'];
  5. 18.
  6. 19. if ($pseudo == "" and $mdp =="" )
  7. 20. {
  8. 21. ?>
  9. 22.
  10. 23. <div id="registreform">
  11. 24. <p>remplissez tous les champs</p>
  12. 25. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  13. 26.
  14. 27. <img src="images/chat.jpg">
  15. 28.
  16. 29. </div>
  17. 30. <?php
  18. 31. }


Pas de connexion à la bdd avant la requète SELECT?

Vire le LIKE et remplace le par un =

  1. $sql = "SELECT * FROM `gens` WHERE `pseudo` LIKE '".$pseudo."'";


Bon après dans la structure c'est un peu brouillon... donc je ne vais pas m'avancé mais juste dire que je ne vois pas de mysql_close();

@RedSux: Js pour un formulaire, a déconseillé ;) 
  • Commenter cette solution |
Score
0
òh
òi
|
Je suis pas vexer, je suis sec ... et là je me suis calmé :) 

(puis non, un anglais qui nous paye des dizaines de milliers d'euros on ne l'envoie pas à McDo :o  )
  • Commenter cette réponse |
Score
0
òh
òi
|
ok merci...lol faut pas se vexer quand meme!!!
des anglais---tu leur refiles un fish and chips et le tour est joue!!!
  • Commenter cette réponse |
Score
0
òh
òi
|
Et n'oublies pas ça :

  1. $pseudo = htmlentities( $_POST['pseudo'] );
  2. $comment = htmlentities( $_POST['comment'] );


(pareil quand t'enregistres dans la base)
  • Commenter cette réponse |
Score
0
òh
òi
|
grand merci a redsux aussi
  • Commenter cette réponse |
Score
0
òh
òi
|
Il manquait ça, deux petits tests : (dans mon code précédent)

  1. if ( isset($_POST['pseudo']) && isset($_POST['mdp']) && ($_POST['pseudo'] != "") && ($_POST['mdp'] != "") )


J'ai testé chez moi, ça marche niquel !


agui26 a dit :
ET finalement,c'est allstar 27 qui l'emporte!!!!


1 : c'était pas un concours
2 : ton code est toujours aussi moche :o 
3 : excuse mon humeur, des anglais me font chier au boulot :o 
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par agui26.
  • Commenter cette réponse |
Score
0
òh
òi
|
ET finalement,c'est allstar 27 qui l'emporte!!!!

else avant sql fonctionne a merveille!!!!merci...merci beaucoup...

qu'est qu'on ferait sans vous!!!!
  • Commenter cette réponse |
Score
0
òh
òi
|
hmm...marche toujours pas ein..

avec ce que tu m'as donne il y que la boucle ''erreur pseudo'' qui est realise quoi que je fasse(bon pseudo bon mdp, ou faux pseudo faux mdp,ou quand je mets rien)

je le vois aussi qu'il manque un else parce deux conditions sont realises en meme temps...mais quoique je fasse ..cela ne fonctionne pas...
  • Commenter cette réponse |
Score
0
òh
òi
|
allstar27 a dit :
@RedSux: Js pour un formulaire, a déconseillé ;) 


En même temps, je fonctionne beaucoup en AJAX maintenant, donc JS très présent :o 



Pour agui26 : en effet, il manque seulement un 'else', mais c'est pas propre quand même :o  "isset" permet de le rendre plus propre, donc je t'en parle !

Maintenant, ton truc :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
  2. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr">
  3. <head>
  4. <title>Page vierge</title>
  5. <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" />
  6. </head>
  7. <body>
  8. <?php
  9. session_start();
  10. require_once "connect_db.php";
  11.  
  12. if ( isset($_POST['pseudo']) && isset($_POST['mdp']) )
  13. {
  14. $pseudo = $_POST['pseudo'];
  15. $mdp = $_POST['mdp'];
  16.  
  17. $sql = "SELECT * FROM 'gens' WHERE 'pseudo' LIKE '".$pseudo."'";
  18. $res = qdb($sql);
  19. if ($enregistrement = mysql_fetch_array($res))
  20. {
  21. if ($enregistrement['mdp'] == $mdp)
  22. {
  23. ?>
  24. <div id="registreform">
  25. <p>bienvenue</p>
  26. <a href="site.php">------>site.php<-----</a><br/><br/>
  27. <img src="images/chat.jpg" />
  28. </div>
  29. <?php
  30. $_SESSION['idmembre'] = $enregistrement['id'];
  31. $_SESSION['pseudo'] = $pseudo;
  32. }
  33. else
  34. {
  35. ?>
  36. <p>
  37. <div id="registreform">
  38. <p>erreur mot de passe</p>
  39. <a href="index.php.php">------>site.php<-----</a><br/><br/>
  40. <img src="images/grrr.jpg">
  41. </div>
  42. </p>
  43. <?php
  44. }
  45. }
  46. else
  47. {
  48. ?>
  49. <p>
  50. <div id="registreform">
  51. <p>erreur pseudo</p>
  52. <a href="index.php.php">------>site.php<-----</a><br/><br/>
  53. <img src="images/grrr.jpg">
  54. </div>
  55. </p>
  56. <?php
  57. }
  58. }
  59. else
  60. {
  61. ?>
  62. <div id="registreform">
  63. <p>remplissez tous les champs</p>
  64. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  65. <img src="images/chat.jpg">
  66. </div>
  67. <?php
  68. }
  69. ?>
  70. </body>
  71. </html>


Ça, ça doit marcher :o 


Sinon allstar27 te parlais d'un "else" juste avant "$sql = " (donc entourer tout le bloc avec des {})
  • Commenter cette réponse |
Score
0
òh
òi
|
et il y connexion au bdd avant select sur la deuxieme ligne...
<?php require_once "connect_db.php"; ?>

:-)
  • Commenter cette réponse |
Score
0
òh
òi
|
ok..mais faut le mettre ou le else?merci
  • Commenter cette réponse |
Score
0
òh
òi
|
desole mais il marche pas ton code...il me renvoie des erreurs..
Parse error: syntax error, unexpected T_ISSET, expecting '(' in C:\Program Files\EasyPHP-5.3.2i\www\Site Mauribordeaux\new.php on line 5..
alors j'ai mis les paranthese et une autre erreur apparait ...
Parse error: syntax error, unexpected T_BOOLEAN_AND in C:\Program Files\EasyPHP-5.3.2i\www\Site Mauribordeaux\new.php on line 5
mon code il marche bien..c'est une erreur de boucle je pense..c'est pour cela qu'il affiche les deux en meme temps..

  1. <?php session_start(); ?>
  2. <?php require_once "connect_db.php"; ?>
  3. <?php
  4.  
  5. if (isset($_POST['pseudo'])) && isset(($_POST['mdp']))
  6. {
  7. $pseudo = $_POST['pseudo'];
  8. $mdp = $_POST['mdp'];
  9.  
  10. $sql = "SELECT * FROM `gens` WHERE `pseudo` LIKE '".$pseudo."'";
  11. $res = qdb($sql);
  12. if ($enregistrement = mysql_fetch_array($res))
  13. {
  14. if ($enregistrement['mdp'] == $mdp)
  15. {
  16. ?>
  17. <div id="registreform">
  18. <p>bienvenue</p>
  19. <a href="site.php">------>site.php<-----</a><br/><br/>
  20.  
  21. <img src="images/chat.jpg">
  22.  
  23. </div>
  24. <?php
  25. $_SESSION['idmembre'] = $enregistrement['id'];
  26. $_SESSION['pseudo'] = $pseudo;
  27.  
  28. ?>
  29.  
  30. <?php
  31. }
  32. }
  33. else
  34.  
  35. {
  36. ?>
  37. <p><div id="registreform">
  38. <p>erreur mot de passe</p>
  39. <a href="index.php.php">------>site.php<-----</a><br/><br/>
  40.  
  41. <img src="images/grrr.jpg">
  42.  
  43. </div></p>
  44. <?php
  45. }
  46.  
  47. }
  48. else {
  49. ?>
  50. <div id="registreform">
  51. <p>remplissez tous les champs</p>
  52. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  53. <img src="images/chat.jpg">
  54. </div>
  55. <?php
  56. }
  57.  
  58. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
Normalement en modifiant ton code, comme je te l'ai montré en bas de mon précédent message, il ne devrait plus y avoir de soucis !

Si ça marche toujours pas, montre moi ton code modifié !
  • Commenter cette réponse |
Score
0
òh
òi
|
merci pour ton aide...et effectivement je viens de decouvrir le bouton editer :-)
  • Commenter cette réponse |
Score
0
òh
òi
|
d'accord j'ai rajouter les isset,c'est pour verifier s'ils sont definis...

je peux pas utiliser javascript dans le code..c'est interdit par le prof...

le seul probleme pour moi c'est pourquoi si les gens ne metten rien dans les cases pseudo et mot de passe et qu'ils appuient sur le boutton ok..la boucle 'remplissez tous les champs' et 'bienvenue' appraissent en meme temps!!!!

or je voudrais que juste la boucle remplissez tous les champs apprait...
il manque en else ??
  • Commenter cette réponse |
Score
0
òh
òi
|
Et le bouton éditer , tu connais ? :o 

:sweat:  trois messages super gros juste pour ça, c'est pas cool ...

Je serais toi j'ajouterais un control en JavaScript ... ce sera un plus non négligeable.

  1. <script>
  2. function controle()
  3. {
  4. if ( (document.getElementByName('pseudo').value != '') && (document.getElementByName('mdp').value != '') )
  5. {
  6. return true;
  7. }
  8. else
  9. {
  10. alert("Veuillez remplir TOUS les champs !");
  11. return false;
  12. }
  13. }
  14. </script>


  1. <form ... onSubmit="return controle()">
  2. ...
  3. <input type="submit" ...>



Et pour encore plus de sécurité, ajoute des "isset" avant ton code :

  1. <?php
  2.  
  3. if isset($_POST['pseudo']) && isset($_POST['mdp'])
  4. {
  5. $pseudo = $_POST['pseudo'];
  6. $mdp = $_POST['mdp'];
  7.  
  8. $sql = "SELECT * FROM `gens` WHERE `pseudo` LIKE '".$pseudo."'";
  9. $res = qdb($sql);
  10. if ($enregistrement = mysql_fetch_array($res))
  11. {
  12. ...
  13. }
  14. else
  15. {
  16. ...
  17. }
  18. } else {
  19. ?>
  20. <div id="registreform">
  21. <p>remplissez tous les champs</p>
  22. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  23. <img src="images/chat.jpg">
  24. </div>
  25. <?php
  26. }
  27.  
  28. ?>
  • Commenter cette réponse |
Score
0
òh
òi
|
encore desolee c'est celui la plutot :-)
  1. <?php session_start(); ?>
  2. <?php require_once "connect_db.php"; ?>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>">
  4. <html xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>" xml:lang="fr">
  5.  
  6. <head>
  7. <title>Page vierge</title>
  8. <meta http-equiv="Content-Type" content="text/HTML; charset=iso-8859-1" />
  9. </head>
  10.  
  11. <body>
  12.  
  13.  
  14. <?php
  15.  
  16. $pseudo = $_POST['pseudo'];
  17. $mdp = $_POST['mdp'];
  18.  
  19. if ($pseudo == "" and $mdp =="")
  20. {
  21. ?>
  22.  
  23. <div id="registreform">
  24. <p>remplissez tous les champs</p>
  25. <a href="index.php.php">------>revenir a l'acceuil!!<-----</a><br/><br/>
  26.  
  27. <img src="images/chat.jpg">
  28.  
  29. </div>
  30. <?php
  31. }
  32.  
  33. $sql = "SELECT * FROM `gens` WHERE `pseudo` LIKE '".$pseudo."'";
  34. $res = qdb($sql);
  35. if ($enregistrement = mysql_fetch_array($res))
  36. {
  37.  
  38. if ($enregistrement['mdp'] == $mdp)
  39. {
  40. ?>
  41. <div id="registreform">
  42. <p>bienvenue</p>
  43. <a href="site.php">------>site.php<-----</a><br/><br/>
  44.  
  45. <img src="images/chat.jpg">
  46.  
  47. </div>
  48. <?php
  49. $_SESSION['idmembre'] = $enregistrement['id'];
  50. $_SESSION['pseudo'] = $pseudo;
  51.  
  52. ?>
  53.  
  54. <?php
  55. }
  56. else
  57. {
  58. ?>
  59. <p><div id="registreform">
  60. <p>erreur mot de passe</p>
  61. <a href="index.php.php">------>site.php<-----</a><br/><br/>
  62.  
  63. <img src="images/grrr.jpg">
  64.  
  65. </div></p>
  66. <?php
  67. }
  68. }
  69. else
  70. {?>
  71. <p><div id="registreform">
  72. <p>compte non reconnu</p>
  73. <a href="index.php.php">------>site.php<-----</a><br/><br/>
  74.  
  75. <img src="images/chat.jpg">
  76.  
  77. </div></p>
  78.  
  79. <?php
  80. }
  81. ?>
  82.  
  83.  
  84.  
  85. </body>
  86.  
  87. </html>
  • Commenter cette réponse |
Score
0
òh
òi
|
a
  • Commenter cette réponse |
Score
0
òh
òi
|
salut merci pour tout ces explications..

je vais rajouter tout sa..

mais j'ai encore un ptit soucis avec mon code.. le voila...(1).quand les gens rentre leur pseudo et mot de passe,et si elle existe dans ma bdd..la boucle bienvenue fonctionne...
(2)
si les gens rentre un bon pseudo mais un faux mot de passe la boucle 'erreur mot de passe ' fonctionne

(3)si les gens rentre un faux pseudo et un faux mot de passe la boucle 'comtpe non reconnu' fonctionne

(4)..Le probleme est le suivant ..si les gens ne metten rien dans les cases pseudo et mot de passe et qu'ils appuient sur le boutton ok..la boucle 'remplissez tous les champs' et 'bienvenue' appraissent en meme temps!!!!

comment eviter cela?j'arrive pas a trouver l'erreur dans mon code!!!merci

  • Commenter cette réponse |
Score
0
òh
òi
|
allstar27 a dit :
Ok chef ;) 


Je suis pas ton chef :ange: 
c'était plus un conseil, mais masqué dans une forme autoritaire, je m'en excuse !
  • Commenter cette réponse |
Score
0
òh
òi
|
Citation :
@allstar27 : Fait des phrases, ce sera plus claire


Ok chef ;) 
  • Commenter cette réponse |
Score
0
òh
òi
|
allstar27 a dit :
<input type="text" name="name" id="pseudo" />
$pseudo=$_POST['pseudo'];

$pseudo=$_POST['name']; alors
ou
<input type="text" name="pseudo" />


C'est pas très claire comme explication :p  Allez, je suis charitable, j'ajoute mon grain de sel :

La variable qui sera utilisé lors du passage au script 'action.php' est définis par les attributs 'name' et non 'id'. Tu l'as très bien fait pour la partie commentaire :

agui26 a dit :
<textarea name="comment" id="ameliorer" rows="7" cols="32">
$comment=$_POST['comment'];
[/cpp]

Mais pourquoi tu ne l'as pas fait avec l'autre :

agui26 a dit :
<input type="text" name="name" id="pseudo" />
$pseudo=$_POST['pseudo'];



Ensuite, pour la seconde partie :

allstar27 a dit :
Fais attention au injection SQL


Il s'agit d'éviter qu'un petit *$£#~ ne s'amuse avec des codes javascript ou autres... Donc n'enregistre jamais des chaines pele mêle.

  1. $pseudo = htmlentities( $_POST['pseudo'] );
  2. $comment = htmlentities( $_POST['comment'] );



Bon courage pour la suite.

@allstar27 : Fait des phrases, ce sera plus claire ;) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Bonjour,

<input type="text" name="name" id="pseudo" />
$pseudo=$_POST['pseudo'];

$pseudo=$_POST['name']; alors
ou
<input type="text" name="pseudo" />

Fais attention au injection SQL
  • Commenter cette réponse |
Score
0
òh
òi
|
je me corrige moi meme!!

Fais un isset et ca marche!!!

  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS