Problèeme php mysql (inscription)


bonjour,
je suis actuellement en train de construire un site internet et j'ai un problème
avec le code php que j'ai adapté pour construire mes pages d'inscriptions/connexion à mon site via une base de donnée je vous poste le dump de la bdd
+le code de la page qui apparemment pose problème car c'est la seul qui m'affiche un message d'erreur : "Column count doesn't match value count at row 1".
c'est en fait la page qui est sensé envoyer les identifiants de la personne dans ma bdd:
<?php
session_start();
?>
            <?php
//Maintenant, on se connecte à la base de données
include("./identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
$pseudo_erreur1 = NULL;
$pseudo_erreur2 = NULL;
$mdp_erreur = NULL;
$email_erreur1 = NULL;
$email_erreur2 = NULL;
$msn_erreur = NULL;
$signature_erreur = NULL;
$avatar_erreur = NULL;
$avatar_erreur1 = NULL;
$avatar_erreur2 = NULL;
$avatar_erreur3 = NULL;
            ?>
// j'ai couper le code html en référence a mon site et laisser uniquement le code php
// pour allégé le code qui est déjà très lourd
                                            <?php
// je ne vous laisse ne fait que le code qui pose problème le reste est sur car déja testé.
//On récupère les variables
$i = 0;
$temps = time(); 
$pseudo = mysql_real_escape_string($_POST['pseudo']);
$email = mysql_real_escape_string($_POST['email']);
$pass = md5($_POST['motdepasse']);
$confirm = md5($_POST['motdepasse2']);


//Vérification du pseudo
$nombrepseudo = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_pseudo = "'.$pseudo.'"'), 0);
if($nombrepseudo != 0)
{
        $pseudo_erreur1 = "Desoler mais votre pseudo est déjà utilisé par un autre membre";
        $i++;
}
if (strlen($pseudo) < 3 || strlen($pseudo) > 15)
{
        $pseudo_erreur2 = "Votre pseudo est soit trop grand, soit trop petit (entre 3 et 15 caracteres)";
        $i++;
}
 ?>
                                            <?php
//V?rification de l'adresse email

//Il faut que l'adresse email n'ait jamais été utilisée

$nombremail = mysql_result(mysql_query('SELECT COUNT(*) FROM forum_membres WHERE membre_email = "'.$email.'"'), 0);

if ($nombremail != 0)
{
        $email_erreur1 = "Votre adresse email est déjà utilisée par un autre membre";
        $i++;
}
 ?>
                                            <?php
											

  if ($i == 0) // Si i est vide, il n'y a pas d'erreur
{

        echo'<h1>Inscription terminée</h1>';
        echo'<p>Bienvenue '.stripslashes(htmlspecialchars($_POST['pseudo'])).' vous etes maintenant inscrit sur ***</p>';
        echo'<p>Cliquez <a href="./index.php">ici</a> pour revenir a la page d accueil</p>';

  //On balance le tout dans la table
        mysql_query('
        INSERT INTO forum_membres (membre_pseudo, membre_mdp, membre_email,             
        membre_inscrit,   
        membre_derniere_visite)
        VALUES ("'.$pseudo.'" , "'.$pass.'" , "'.$email.'" ,
         "'.$nomavatar.'" ,
          "'.$temps.'" ,
        "'.$temps.'" ) ') or die(mysql_error());
       
       
        //Et on d?finit les variables de sessions
        $_SESSION['pseudo'] = $pseudo;
        $_SESSION['id'] = mysql_insert_id();
        $_SESSION['level'] = 2;

}
else
{
        echo'<h1>Inscription interrompue</h1>';
        echo'<p>Une ou plusieurs erreurs se sont produites pendant l incription</p>';
        echo'<p>'.$i.' erreur(s)</p>';
        echo'<p>'.$pseudo_erreur1.'</p>';
        echo'<p>'.$pseudo_erreur2.'</p>';
        echo'<p>'.$mdp_erreur.'</p>';
        echo'<p>'.$email_erreur1.'</p>';
        echo'<p>'.$email_erreur2.'</p>';
       
        echo'<p>Cliquez <a href="./inscription.php">ici</a> pour recommencer</p>';
}
mysql_close();
                                            ?>
                                            ?>
                                            

je vous poste aussi le code du formulaire qui va juste avant on sait jamais
<?php
session_start();
?>
<?php
include("./identifiants.php");
mysql_connect($adresse, $nom, $motdepasse);
mysql_select_db($database);
    ?>
<?php
//On évite qu'un membre déjà connecté se retrouve ici !
if (isset($_SESSION['pseudo']))
{
echo '<p>Désolé, mais vous ne pouvez pas accéder à cette page.</p></div></body></html>';
exit();
}<?php include('formulaire.php');
?>        ?>

le formulaire.php se présente comme suis
   <form method="post" action="repondeur.php" name="form_contacts" id="form_contacts" enctype="multipart/form-data" />

<input type="text" name="nom" id="nom" value="entrez votre nom"class="selected"/>

 <input type="text" name="prenom" id="prenom" value="entrez votre prénom"class="selected"/>

 <input type="text" name="pseudo" id="pseudo" value="entrez votre pseudo"class="selected"/>

<input type="password" name="motdepasse" id="motdepasse" class="selected"/>

 <input type="password" name="motdepasse2" id="motdepasse2" class="selected"/>

<input type="text" name="email" id="email" value="entrez votre email"class="selected"/>

<input name="envoyer" type="button" id="envoyer" value="Envoyer" onClick="envoie(this.form)">


c'est donc juste les boutons principaux comme sa vous pouvez avoir le nom des informations sous les yeux.

1 réponse

  1. vola le dump de la bdd au cas ou :
    -- phpMyAdmin SQL Dump
    -- version 2.11.4
    -- https://www.phpmyadmin.net/
    --
    -- Host: localhost
    -- Generation Time: May 04, 2010 at 10:59 AM
    -- Server version: 5.0.67
    -- PHP Version: 5.2.6
    
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
    
    --
    -- Database: '***'
    --
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table 'forum_membres'
    --
    
    CREATE TABLE 'forum_membres' (
      'membre_id' int(11) NOT NULL auto_increment,
      'membre_pseudo' varchar(30) collate latin1_general_ci NOT NULL,
      'membre_mdp' varchar(32) collate latin1_general_ci NOT NULL,
      'membre_email' varchar(250) collate latin1_general_ci NOT NULL,
      'membre_msn' varchar(250) collate latin1_general_ci NOT NULL,
      'membre_siteweb' varchar(100) collate latin1_general_ci NOT NULL,
      'membre_avatar' varchar(100) collate latin1_general_ci NOT NULL,
      'membre_signature' varchar(200) collate latin1_general_ci NOT NULL,
      'membre_localisation' varchar(100) collate latin1_general_ci NOT NULL,
      'membre_inscrit' int(11) NOT NULL,
      'membre_derniere_visite' int(11) NOT NULL,
      'membre_rang' tinyint(4) default '2',
      'membre_post' int(11) NOT NULL,
      PRIMARY KEY  ('membre_id'),
      KEY 'membre_inscrit' ('membre_inscrit'),
      FULLTEXT KEY 'membre_mdp' ('membre_mdp')
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1 ;
    
    --
    -- Dumping data for table 'forum_membres'
    --

    merci d'avance :)
    0