Inscription et suppresion

page 1 page 2
Répondre
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Bonjour,

J'ai mis en place sur mon site un espace membre. Quand on valide l'inscription, on est redirigé dans l'espace membre et quand on se déconnecte et reconnecte ça nous met compte non reconnu.

La table membre :
  1. CREATE TABLE membre (
  2. id int(11) NOT NULL auto_increment,
  3. login text NOT NULL,
  4. pass_md5 text NOT NULL,
  5. email varchar(100) NOT NULL,
  6. PRIMARY KEY (id)
  7. ) TYPE=MyISAM; 


Code de la page 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['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email']))) { 
  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.          $base = mysql_connect ('serveur', 'login', 'password'); 
  12.          mysql_select_db ('nom serveur', $base); 
  13.  
  14.          // on recherche si ce login est déjà utilisé par un autre membre
  15.          $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
  16.          $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
  17.          $data = mysql_fetch_array($req); 
  18.  
  19.          if ($data[0] == 0) { 
  20.             $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")'; 
  21.             session_start(); 
  22.             $_SESSION['login'] = $_POST['login']; 
  23.             header('Location: membre.php'); 
  24.             exit(); 
  25.          } 
  26.          else { 
  27.             $erreur = 'Un membre possède déjà ce login.'; 
  28.          } 
  29.       } 
  30.    } 
  31.    else { 
  32.       $erreur = 'Au moins un des champs est vide.'; 
  33.    }  
  34. }  
  35. ?>
  36. <html>
  37. <head>
  38. <title>Inscription</title>
  39. </head>
  40.  
  41. <body>
  42. Inscription à l'espace membre :<br />
  43. <form action="inscription.php" method="post">
  44. Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
  45. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
  46. Confirmation du mot de passe : <input type="password" name="pass_confirm" value="
  47. <?php
  48. if (isset($_POST['pass_confirm']))  
  49. echo htmlentities(trim($_POST['pass_confirm'])); ?>
  50. "><br />
  51. E-mail: <input type="text" name="email" value="Indiquez votre email" />
  52. <input type="submit" name="inscription" value="Inscription">
  53. </form>
  54. <?php
  55. if (isset($erreur)) echo '<br />',$erreur;  
  56. ?>
  57. </body>
  58. </html> 


Merci d'avance pour votre aide !
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Le problème doit plutôt se situer sur la page de login je pense (vu que tu as un problème au login et non à l'inscription).
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
OK, mais pourtant j'ai suivis le comment faire du site pour l'index.php !
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Pour la page de index.php, j'ai rien changé, il fallait ?
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
En faite, je viens de me rappelé que ça vient bine de la table membre, car quand je vais voir les inscrit, il ne sont pas entré dans la base de donné ! Ou alors, c'est un problème qui vint de la page inscription.php !
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
En effet.

C'est parce que tu n'exécutes pas ta requête qui fait l'insertion du membre. Il te manque un mysql_query.
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Ok, j'ai lu le manuel, mais ou est ce qu'il faut que je mette le mysql_query ?
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Ben regarde ton script, t'as du remarquer qu'à un certain moment (des moments ou y'a du SQL), tu en faisais, et à un autre moment, tu n'en fais pas.
Bon ben c'est la que tu dois le faire.
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Trouve pas !!
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Moi non plus.

On fait comment alors ?
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
On relie les cours ??
dtm
dtm
Déconnecté
Bonjour
Petite question ...pourquoi demarre t'on ce script par
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {

j'arrive pas a trouver une reponse correcte
Merci d'avance
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Pour tester que le bouton 'Inscription' a été cliqué.

Par contre, le test de la valeur du bouton est anecdotique dans ce cas (c'est nécessaire surtout quand ton bouton peut prendre des valeurs différentes), le plus important étant de tester les champs du formulaire.
dtm
dtm
Déconnecté
d'ac!! super precision merci

juste pour etre bien sur de faire le tour de la question...Quelle est l'interet de savoir que le bouton Inscription a ete cliqué?? est ce parceque la partie php et la partie HTML sont dans la meme page??...
je m'explique : si j'ai deux pages, une avec du html et un formulaire avec mon bouton Inscription. si je presse le bouton Inscription j'appelle la second avec le code php....est ce alors utilile de tester que le bouton 'Inscription' a été cliqué?? au fond si j'arrive sur cette page c'est bien parceque le bouton a ete cliqué non??

merci d'avance
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Le problème, c'est que l'URL de la seconde page, je peux la connaitre en regardant ton formulaire, donc je peux directement écrire l'URL de cette page dans mon navigateur.

Au final, je vais arriver sur ton code PHP sans jamais avoir cliqué sur le moindre bouton.
page 1 page 2
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Bretagne - php - Moto - Kit graphique