Problème de connexion / inscription : espace membre

Répondre
foussene
le 30/08/2008 à 17:57
foussene
Bonjour,

j'ai essaye de faire un formulaire d'inscription et de connexion mais il y a des bug
connexion.php
  1. <?php
  2. // on teste si le visiteur a soumis le formulaire de connexion
  3. if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
  4. if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {

  5. $base = mysql_connect ('localhost', 'root', '');
  6. mysql_select_db ('base_de_donne');

  7. // on teste si une entrée de la base contient ce couple login / pass
  8. $sql = 'SELECT count(*) FROM membre WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
  9. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  10. $data = mysql_fetch_array($req);

  11. mysql_free_result($req);
  12. mysql_close();

  13. // si on obtient une réponse, alors l'utilisateur est un membre
  14. if ($data[0] == 1) {
  15. session_start();
  16. $_SESSION['pseudo'] = $_POST['pseudo'];
  17. header('Location: membre.php');
  18. exit();
  19. }
  20. // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
  21. elseif ($data[0] == 0) {
  22. $erreur = 'Compte non reconnu.';
  23. }
  24. // sinon, alors la, il y a un gros problème :)
  25. else {
  26. $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
  27. }
  28. }
  29. else {
  30. $erreur = 'Au moins un des champs est vide.';
  31. }
  32. }
  33. ?>
  34. <html>
  35. <head>
  36. <title>Accueil</title>
  37. </head>

  38. <body>
  39. Connexion à l'espace membre :<br />
  40. <form action="index.php" method="post">
  41. pseudo : <input type="text" name="pseudo" value="<?php if (isset($_POST['pseudo'])) echo htmlentities(trim($_POST['pseudo'])); ?>"><br />
  42. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
  43. <input type="submit" name="connexion" value="Connexion">
  44. </form>
  45. <a href="inscription.php">Vous inscrire</a>
  46. <?php
  47. if (isset($erreur)) echo '<br /><br />',$erreur;
  48. ?>
  49. </body>
  50. </html>

inscription.php
  1. <?php
  2. // on teste si le visiteur a soumis le formulaire
  3. if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
  4. // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
  5. if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
  6. // on teste les deux mots de passe
  7. if ($_POST['pass'] != $_POST['pass_confirm']) {
  8. $erreur = 'Les 2 mots de passe sont différents.';
  9. }
  10. else {
  11. mysql_connect("localhost", "root", "");
  12. mysql_select_db("base_de_donne");

  13. // on recherche si ce login est déjà utilisé par un autre membre
  14. $sql = 'SELECT count(*) FROM membre WHERE pseudo="'.mysql_escape_string($_POST['pseudo']).'"';
  15. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
  16. $data = mysql_fetch_array($req);

  17. if ($data[0] == 0) {
  18. $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['pseudo']).'", "'.md5(mysql_escape_string($_POST['pass'])).'")';
  19. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

  20. session_start();
  21. $_SESSION['pseudo'] = $_POST['pseudo'];
  22. header('Location: membre.php');
  23. exit();
  24. }
  25. else {
  26. $erreur = 'Un membre possède déjà ce login.';
  27. }
  28. }
  29. }
  30. else {
  31. $erreur = 'Au moins un des champs est vide.';
  32. }
  33. }
  34. ?>
  35. <html>
  36. <head>
  37. <title>Inscription</title>
  38. </head>

  39. <body>
  40. Inscription à l'espace membre :<br />
  41. <form action="inscription.php" method="post">
  42. pseudo : <input type="text" name="pseudo" value="<?php if (isset($_POST['pseudo'])) echo htmlentities(trim($_POST['pseudo'])); ?>"><br />
  43. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
  44. Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
  45. <input type="submit" name="inscription" value="Inscription">
  46. </form>
  47. <?php
  48. if (isset($erreur)) echo '<br />',$erreur;
  49. ?>
  50. </body>
  51. </html>


et membre qui marche je trouve se code sur se site.
Voici le resultat

Merci d'avance
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours