lofo7 | Bonjour,
j'ai créé ma base de données et un formulaire d'inscription à un espace membre. Alors lorsque je remplis le formulaire et que je le soumets, j'obtiens cette erreur :
Erreur : Column count doesn't match value count at row 1
Mon problème je pense vient de l'insertion de données, dans ma base, de mon formulaire de type "radio". Je demande si les membres veulent s'inscrire à la newletter donc ils ont une case à cocher.
voici ma base :
Code :
- CREATE TABLE `membres` (
- `id` mediumint(9) NOT NULL auto_increment,
- `session` text NOT NULL,
- `pseudo` text NOT NULL,
- `passe` text NOT NULL,
- `email` text NOT NULL,
- `ville` text NOT NULL,
- `infolettre` varchar(255) NOT NULL default '0',
- KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
|
le script pour l'inscription :
Code :
- <?php
- session_start();
- require_once('config.php');
- $titre_page='Inscription';
- include_once('haut.php');
- ?><form method='post' action='verification.php' enctype='multipart/form-data'>
- <table width="400" border="0" align="center">
- <tr>
- <td colspan="2" class="menu"><div align="center">Inscription</div></td>
- </tr>
- <tr>
- <td width="195"><label for="pseudo">Pseudo : </label></td>
- <td width="195"><input name="pseudo" type="text" id="pseudo" /></td>
- </tr>
- <tr>
- <td><label for="email">E-mail : </label></td>
- <td><input name="email" type="text" id="email" /></td>
- </tr>
- <tr>
- <td><label for="mdp">Mot de passe : </label></td>
- <td><input name="mdp" type="password" id="mdp" /></td>
- </tr>
- <tr>
- <td><label for="mdp2">Confirmation du mot de passe : </label></td>
- <td><input name="mdp2" type="password" id="mdp2" /></td>
- </tr>
- <tr>
- <td><label for="ville">Ville : </label></td>
- <td><input name="ville" type="text" id="ville" /></td>
- </tr>
- <tr>
- <td><label for="infolettre">S'inscrire à l'infolettre ? : </label></td>
- <td>Oui<input name="infolettre" type="radio" value="1" />
- <input name="infolettre" type="radio" value="0" />Non</td>
- </tr>
- <tr><td> </td></tr>
- <tr>
- <td><div align="right">
- <input name="Envoyer" type="submit" value="Valider" />
- </div></td>
- <td><input name="Effacer" type="reset" id="Effacer" value="Effacer" /></td>
- </tr>
- </table>
- </form>
- </div>
- <center><a href="index.php">Retour</a></center>
- <?php
- include_once('bas.php');
- ?>
|
et le script de vérification :
Code :
- <?php
- session_start();
- require_once('config.php');
- $titre_page='Inscription';
- include_once('haut.php');
- $email=formulaires($_POST['email']);
- $pseudo=formulaires($_POST['pseudo']);
- $mdp=formulaires($_POST['mdp']);
- $mdp2=formulaires($_POST['mdp2']);
- $ville=formulaires($_POST['ville']);
- $infolettre=formulaires($_POST['infolettre']);
- //// VERIFICATIONS BANALES ////
- if(!$mdp || !$mdp2 || strlen($mdp) < 5)
- {
- echo'Votre mot de passe est invalide. Il doit faire plus de 5 caractères et ne contenir que des caractères alphanumériques (A-Z, a-z, 0-9)<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- if($mdp!=$mdp2)
- {
- echo'Les deux mots de passe rentrés ne sont pas identiques<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- if(!$pseudo || strlen($pseudo) > 15)
- {
- echo'Votre pseudo est invalide. Il doit faire moins de 15 caractères et ne contenir que des caractères alphanumériques (A-Z, a-z, 0-9)<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- if(!$email)
- {
- echo'Veuillez insérer un email valide<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- //// VERIFICATIONS DES EXISTANCES ////
- $reponse_mail=mysql_query("SELECT email FROM membres WHERE email='$email'" ) or die ('Erreur : '.mysql_error()); //verification si e-mail existe déjà
- $count_mail=mysql_num_rows($reponse_mail);
- if($count_mail == 1)
- {
- echo'Cet e-mail existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- $reponse_pseudo=mysql_query("SELECT pseudo FROM membres WHERE pseudo='$pseudo'" ) or die ('Erreur : '.mysql_error()); //verification si pseudo existe déjà
- $count_pseudo=mysql_num_rows($reponse_pseudo);
- if($count_pseudo == 1)
- {
- echo 'Ce pseudo existe déjà.<br /><a href="inscription.php" onClick="history.back()">Retour</a>';
- include_once('bas.php');
- return FALSE;
- }
- for ($ligne=0;$ligne<30;$ligne++) //Création d'un identifiant aléatoire
- {
- @$session.=substr('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN',(rand()%(strlen('0123456789AZERTYUIOPMLKJHGFDSQWXCVBN'))),1);
- }
- $mdp=md5($mdp); //Codage du mot de passe
- mysql_query("INSERT INTO membres VALUES ('', '$session', '$pseudo', '$mdp', '$email')" ) or die ('Erreur : '.mysql_error()); //insertion dans la bdd
- echo'Merci de vous vous etre inscrit sur '.$nom_du_site.'<br /><a href="index.php">Identifiez vous !</a>';
- include_once('bas.php');
- ?>
|
Je vois pas d'où peut venir l'erreur. Si vous avez une idée...
Merci
Max |