le 11/10/2009 à 20:11
alexandryne
Bonjour,
Quand j'envoie mon formulaire d'inscription, j'ai une erreur sql : Erreur SQL !INSERT INTO membre VALUES("", "alexandryne", "80fce8d1a73529f0bac163fc289eeae2")
Column count doesn't match value count at row 1.
Dans la base de données, j'ai : id, login, pass_md5 et email.
Voilà le code du formulaire d'inscription. Merci de m'aider. J'ai aussi "au moins un des champs est vide qui s'inscrit quand j'ai le formulaire qui apparaît.
Quand j'envoie mon formulaire d'inscription, j'ai une erreur sql : Erreur SQL !INSERT INTO membre VALUES("", "alexandryne", "80fce8d1a73529f0bac163fc289eeae2")
Column count doesn't match value count at row 1.
Dans la base de données, j'ai : id, login, pass_md5 et email.
Voilà le code du formulaire d'inscription. Merci de m'aider. J'ai aussi "au moins un des champs est vide qui s'inscrit quand j'ai le formulaire qui apparaît.
<?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['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])) && (isset($_POST['email']) && !empty($_POST['email'])))
// on teste les deux mots de passe
if ($_POST['pass'] != $_POST['pass_confirm']) {
$erreur = 'Les 2 mots de passe sont différents.';
}
else {
$base = mysql_connect ('localhost', '*****', '******');
mysql_select_db ('*****', $base);
// on recherche si ce login est déjà utilisé par un autre membre
$sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'"';
$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 membre VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass']).'", "'.mysql_escape_string($_POST['email'])).'")';
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
session_start();
$_SESSION['login'] = $_POST['login'];
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">
<table>
<tr>
<tr>
<td align="right">Login</td>
<td>
<td align="left"><input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Mot de Passe</td>
<td><td align="left"><input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"></td>
</tr>
<tr>
<td align="right">Confirmation du mot de passe</td>
<td><td align="left"><input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"></td>
</tr>
<tr>
<tr>
<td align="right">Adresse Email</td>
<td><td align="left"><input type="text" name="email" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['email'])); ?>"></td>
</tr>
<tr>
<tr>
<td colspan="2"><input type="submit" name="inscription" value="Inscription">
</table>
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>
php ?>