Column count doesn't match value count at row
Résolu
AWare
-
Eléa7 -
Eléa7 -
Bonjour,
Voila , je suis en train de créer un espace membre en php .
voici le script du formulaire d'inscription d'un utilisateur:
Et voici ce qui s'affiche après un essai d'inscription d'utilisateur:
Voila , je suis en train de créer un espace membre en php .
voici le script du formulaire d'inscription d'un utilisateur:
<?php // on teste si le visiteur a soumis le formulaire if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') { // on teste l'existence de nos variables. On teste également si elles ne sont pas vides if ((isset($_POST['account_name']) && !empty($_POST['account_name'])) && (isset($_POST['account_pwd']) && !empty($_POST['account_pwd'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) { // on teste les deux mots de passe if ($_POST['account_pwd'] != $_POST['pass_confirm']) { $erreur = 'Les 2 mots de passe sont différents.'; } else { $base = mysql_connect ('localhost', 'root', 'password'); mysql_select_db ('AWare', $base); // on recherche si ce login est déjà utilisé par un autre membre $sql = 'SELECT count(*) FROM egw_agw_accounts WHERE account_name="'.mysql_escape_string($_POST['account_name']).'"'; $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); $data = mysql_fetch_array($req); if ($data[0] == 0) { $sql = 'INSERT INTO egw_agw_accounts VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'; mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); session_start(); $_SESSION['account_name'] = $_POST['account_name']; header('Location: membre.php'); exit(); } else { $erreur = 'Un membre possède déjà ce login.'; } } } else { $erreur = 'Au moins un des champs est vide.'; } } ?> <html> <head> <title>Inscription</title> </head> <body> Inscription à l'espace membre :<br /> <form action="inscription.php" method="post"> Votre identifiant : <input type="text" name="account_name" value="<?php if (isset($_POST['account_name'])) echo htmlentities(trim($_POST['account_name'])); ?>"><br /> Votre mot de passe : <input type="password" name="account_pwd" value="<?php if (isset($_POST['account_pwd'])) echo htmlentities(trim($_POST['account_pwd'])); ?>"><br /> 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 /> <input type="submit" name="inscription" value="Inscription"> </form> <?php if (isset($erreur)) echo '<br />',$erreur; ?> </body> </html>
Et voici ce qui s'affiche après un essai d'inscription d'utilisateur:
Column count doesn't match value count at row 1
A voir également:
- Column count doesn't match value count at row 1 sql
- World at arms - Télécharger - Rôle RPG
- Mysql error in file: /engine/classes/mysql.php at line 53 ✓ - Forum Réseaux sociaux
- Logiciel sql - Télécharger - Bases de données
- System doesn't permit flashing bios - Forum Windows 8 / 8.1
- Sql (+) - Forum Programmation
5 réponses
normal, c'était $sql=.. et non pas sql=...
Mais ça tu pouvais le voir toi-même, essaye de comprendre au lieu de recopier aveuglément. Nous aussi nous faisons des fautes de frappe.
Mais ça tu pouvais le voir toi-même, essaye de comprendre au lieu de recopier aveuglément. Nous aussi nous faisons des fautes de frappe.
Oops, petit click non voulu ,
donc , revenons à nos moutons...
Voici aussi la table concernée:
egw_agw_accounts nom de la table
account_id identifiant d'un utilisateur
account_name représentant le nom d’utilisateur du visiteur
account_pwd mot de passe d'un utilisateur
account_mail représentant l’adresse e-mail du visiteur
account_type type d'un utilisateur
Pouvez vous m'éclaircir à propos de mon erreur?
Merci!
donc , revenons à nos moutons...
Voici aussi la table concernée:
egw_agw_accounts nom de la table
account_id identifiant d'un utilisateur
account_name représentant le nom d’utilisateur du visiteur
account_pwd mot de passe d'un utilisateur
account_mail représentant l’adresse e-mail du visiteur
account_type type d'un utilisateur
Pouvez vous m'éclaircir à propos de mon erreur?
Merci!
Bonjour
Ce message signifie que le nombre de champs que tu initialises ne correspond pas au nombre de champs de la table
sql = 'INSERT INTO egw_agw_accounts VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'
Si je compte bien, tu initialises 3 champs alors que ta table en compte 5. Comment veux-tu que mysql devine lesquels ?
En lui disant lesquels:
sql = 'INSERT INTO egw_agw_accounts (account_id,account_name,account_pwd) VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'
Au passage, mysql_escape_string n'est pas utile sur le mot de passe, comme tu calcules le md5, il n'y a vraiment aucun risque d'y retrouver de l'injection sql ou des caractères spéciaux...
Ce message signifie que le nombre de champs que tu initialises ne correspond pas au nombre de champs de la table
sql = 'INSERT INTO egw_agw_accounts VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'
Si je compte bien, tu initialises 3 champs alors que ta table en compte 5. Comment veux-tu que mysql devine lesquels ?
En lui disant lesquels:
sql = 'INSERT INTO egw_agw_accounts (account_id,account_name,account_pwd) VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'
Au passage, mysql_escape_string n'est pas utile sur le mot de passe, comme tu calcules le md5, il n'y a vraiment aucun risque d'y retrouver de l'injection sql ou des caractères spéciaux...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question