Code problème

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

J'ai insérer une table (Voir wall) et elle fonctionne (dans MySQL).

Ensuite je me rend sur la page inscription.php et j'entre mes identifiants, mots de passe et email et je valide. J'ai ce message qui s'affiche :

Erreur SQL! INSERT INTO membre VALUES ("", "Expomatique", "abb87b02d85922fc7b589a3e037f4287")
Nombre de colonnes ne correspond pas à compter de valeur à la ligne 1

Lien vers le wall : http://www.lephpfacile.com/wall/wall-1883.php.

(Le message d'erreur qui se trouve dans le wall est le même que là sauf qu'il a été traduit par la barre d'outil Google).

Pour constater l'eereur SQL, rendez-vous sur mon site, sur l'espace membre à cette adresse : http://expomatique.free.fr/espace_membre/inscription.php
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
Ta table ne comporte pas 3 champs, on en a déjà parlé dans un autre sujet.

Je reprend ma réponse de l'autre message :

Si ta table a plus que 3 champs, ajoute des données dans ta requête.

Si ta table a plus que 3 champs mais que tu souhaites insérer un élément en spécifiant juste 3 champs, nomme les champs de destinations, comme ceci :
INSERT INTO table (champ1, champ2, champ3) VALUES ('donnee1', 'donnee2', 'donnee3')

Si ta table a moins de 3 champs, retire des données de ta requête.
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
OK, mais je sus pose que la table membre à un problème ?
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Pour le lien espace membre, vous ne verrait rien car j'ai enlever le champ email, je le remettrais lorsque j'aurais trouvé la bonne table membre et corrigé ce problème.

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
Ta table n'a pas de problème.

C'est ton code qui en a un.
Tu dois opter pour l'une de mes 3 solutions en fonction de ce que tu souhaites faire.
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Qu'est ce qu'il faut que je fasse ?
Amery
Amery
Déconnecté
As-tu lu les cours qui expliquent les fonctionnement et la manipulation des tables???!!! Je ne pense pas...

Si tu as lu les cours, qu'est-ce que tu n'as pas compris?
Ok pour t'aider, mais il faut que tu fasses un minimum d'efforts de ton côté, sinon on n'avancera pas...
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
OK, je vais regarder le chapitre sur la manipulation de table ! Mais LA GLOBULE m'a dit que cela ne venait pas de la table mais de ma page inscription.php !

J'ai juste ajouter ce code pour le champs email :

  1. E-mail: <input type="text" name="email" value="Indiquez votre email" />
  2.  
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello.

Et il est entre les balises <form>et</form> de ton formulaire ce input?

Parce que d'après l'erreur tu envoie pas email ou il n'est pas reçu.

Puis montre le code de ta page qui fait l'insertion en base parce que personne n'a de boule de cristal.

@+...
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
OK, le code de ma page (bien sur je ne met pas mes identifiants !) :
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
Le code :

  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']))) { 
  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_base', $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'])).'")'; 
  21.             mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
  22.  
  23.             session_start(); 
  24.             $_SESSION['login'] = $_POST['login']; 
  25.             header('Location: membre.php'); 
  26.             exit(); 
  27.          } 
  28.          else { 
  29.             $erreur = 'Un membre possède déjà ce login.'; 
  30.          } 
  31.       } 
  32.    } 
  33.    else { 
  34.       $erreur = 'Au moins un des champs est vide.'; 
  35.    }  
  36. }  
  37. ?>
  38. <html>
  39. <head>
  40. <title>Inscription</title>
  41. </head>
  42.  
  43. <body>
  44. Inscription à l'espace membre :<br />
  45. <form action="inscription.php" method="post">
  46. Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
  47. Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><br />
  48. Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if  
  49. E-mail: <input type="text" name="email" value="Indiquez votre email" />  
  50. (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
  51. <input type="submit" name="inscription" value="Inscription">
  52. </form>
  53. <?php
  54. if (isset($erreur)) echo '<br />',$erreur;  
  55. ?>
  56. </body>
  57. </html> 
i M@N
i M@N
Déconnecté
One Love, One Heart, One Unity.
Hello.

ligne 5: il faut tester et initialiser la variable $email issue de $_POST (ton input email)
  1. // on teste l'existence de nos variables. On teste également si elles ne sont pas vides
  2.    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']))) { 


ligne 20: la requête devient :
  1. $sql = 'INSERT INTO membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.mysql_escape_string(md5($_POST['pass'])).'", "'.mysql_escape_string($_POST['email']).'")'; 


@+...
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
OK!
Lepetitwindows56
Lepetitwindows56
Déconnecté
Lepetitwindows 56 - http://www.expomatique.net/
J'ai ce message d'erreur : Parse error: syntax error, unexpected ')' in /mnt/162/free.fr/0/f/expomatique/espace_membre/inscription.php on line 5.

Avec ce que tu m'a dit, ça donne ça le code de la page :
  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']))) { !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.          $base = mysql_connect ('serveur', 'login', 'password'); 
  12.          mysql_select_db ('nom_base', $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="<?php if  
  47. E-mail: <input type="text" name="email" value="Indiquez votre email" />  
  48. (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
  49. <input type="submit" name="inscription" value="Inscription">
  50. </form>
  51. <?php
  52. if (isset($erreur)) echo '<br />',$erreur;  
  53. ?>
  54. </body>
  55. </html> 
LA GLOBULE
LA GLOBULE
Déconnecté
111 111 111 x 111 111 111 = 12 345 678 987 654 321
La situation est désespérée, tu n'arrives même pas à faire un copier coller.

Arrête le PHP, vraiment...

Devant autant de mauvaise volonté, j'en viens à la conclusion que tu te moques de nous.
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