erreur SQL
Posté : 12 nov. 2010, 16:02
bonjours, j'ai récupérer un code tout fait pour faire une section membre
ma table membre d'origine était la suivante :
Erreur SQL !INSERT INTO membre VALUES("", "test", "098f6bcd4621d373cade4e832627b4f6")
Column count doesn't match value count at row 1
je sais que ce message d'erreur vient du fait que lors d'une l'inscription je renseigne que 2 champs mais je ne veux pas renseigner les autres lors de l'inscription, alors ma question est simple, que dois je modifier dans le code du fichier inscription.php ?
merci d'avance pour votre aide
ma table membre d'origine était la suivante :
le fichier inscription. php est le suivant :CREATE TABLE membre (
id int(11) NOT NULL auto_increment,
login text NOT NULL,
pass_md5 text NOT NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;
mon problème est le suivant : j'ai rajouté des 3 colonnes a ma table membre qui me serviront plus tard et maintenant quand je veux inscrire un nouveau membre j'ai le message d'erreur suivant :<?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']))) {
// 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', 'root', 'xxxxx');
mysql_select_db ('xxxxxx', $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']).'", "'.mysql_escape_string(md5($_POST['pass'])).'")';
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>
<title>BDD des piliers de Bar 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="combats" href="presentation.css" />
</head>
<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Login : <input type="text" name="login" value="<?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>"><br />
Mot de passe : <input type="password" name="pass" value="<?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"><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>
Erreur SQL !INSERT INTO membre VALUES("", "test", "098f6bcd4621d373cade4e832627b4f6")
Column count doesn't match value count at row 1
je sais que ce message d'erreur vient du fait que lors d'une l'inscription je renseigne que 2 champs mais je ne veux pas renseigner les autres lors de l'inscription, alors ma question est simple, que dois je modifier dans le code du fichier inscription.php ?
merci d'avance pour votre aide