salut,
le message d'erreur est clair tu n'a pas 12 champs dans la requete SQL (qui est donnée dans le message d'erreur ...)
Erreur SQL !INSERT INTO membre VALUES("", "test ", "ab4f63f9ac65152575886860dde480a1")
la on vois distinctement 3 champs dans la requête insert !
la comme ça la requete sql ne correspond pas au code fournit.
Par contre elle correspond bien a celle du code d'origine du comment faire.
donc être sur, fait echo ou var_dump($sql) après chaque affectation de la variable $sql. tu peut ajouter __LINE__ dans tous tes message d'erreur pour être sur de celui qui est utilisé :)
A tu modifier la bonne table ?
utilise tu le bon script ?
j'ai testé ton code
<html>
<head><title>Test Jpp</title>
</head>
<body>
<div id="blocgauche">
<?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['nom']) && !empty($_POST['nom']))
&& (isset($_POST['prenom']) && !empty($_POST['prenom']))
&& (isset($_POST['datedenaissance']) && !empty($_POST['datedenaissance']))
&& (isset($_POST['villedenaissance']) && !empty($_POST['villedenaissance']))
&& (isset($_POST['adresse']) && !empty($_POST['adresse']))
&& (isset($_POST['codepostal']) && !empty($_POST['codepostal']))
&& (isset($_POST['ville']) && !empty($_POST['ville']))
&& (isset($_POST['tel']) && !empty($_POST['tel']))
&& (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', 'root', 'yyRu2TKEvyYpzFLK');
mysql_select_db ('lephpfacile', $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(null, "'.mysql_escape_string($_POST['login']).'",
"'.mysql_escape_string($_POST['nom']).'",
"'.mysql_escape_string($_POST['prenom']).'",
"'.mysql_escape_string($_POST['datedenaissance']).'",
"'.mysql_escape_string($_POST['villedenaissance']).'",
"'.mysql_escape_string($_POST['adresse']).'",
"'.mysql_escape_string($_POST['codepostal']).'",
"'.mysql_escape_string($_POST['ville']).'",
"'.mysql_escape_string($_POST['tel']).'",
"'.mysql_escape_string($_POST['email']).'",
"'.mysql_escape_string(md5($_POST['pass'])).'")';
echo '<h2>',$sql,'</h2>';
mysql_query($sql) or die('Erreur SQL à la ligne '.(__LINE-1).' !'.$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.';
}
}
?>
<h2><img src="images/icones/inscrition.png" width="48" height="48" align="absmiddle" /> Inscription</h2>
<p><form action="" 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 />
Nom : <input type="text" name="nom" value="<?php if (isset($_POST['nom'])) echo htmlentities(trim($_POST['nom'])); ?>"><br />
Prénom : <input type="text" name="prenom" value="<?php if (isset($_POST['prenom'])) echo htmlentities(trim($_POST['prenom'])); ?>"><br />
Date de naissance : <input type="text" name="datedenaissance" value="<?php if (isset($_POST['datedenaissance'])) echo htmlentities(trim($_POST['datedenaissance'])); ?>"><br />
Ville de naissance : <input type="text" name="villedenaissance" value="<?php if (isset($_POST['villedenaissance'])) echo htmlentities(trim($_POST['villedenaissance'])); ?>"><br />
Adresse : <input type="text" name="adresse" value="<?php if (isset($_POST['adresse'])) echo htmlentities(trim($_POST['adresse'])); ?>"><br />
Code postal : <input type="text" name="codepostal" value="<?php if (isset($_POST['codepostal'])) echo htmlentities(trim($_POST['codepostal'])); ?>"><br />
Ville : <input type="text" name="ville" value="<?php if (isset($_POST['ville'])) echo htmlentities(trim($_POST['ville'])); ?>"><br />
Téléphone : <input type="text" name="tel" value="<?php if (isset($_POST['tel'])) echo htmlentities(trim($_POST['tel'])); ?>"><br />
E-Mail : <input type="text" name="email" value="<?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>"><br /><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</p></div></body></html>
avec une modif au niveau de la requete SQL (null au lieu de '' pour l'id)
pour le test j'ai pris ceci comme structure de table
create table membre(
id int unsigned not null auto_increment,
login text,
nom text,
prenom text,
datedenaissance date not null,
villedenaissance text,
adresse text,
codepostal text,
ville text,
tel text,
email text,
pass text,
primary key(id))type=myisam;
et ça fonctionne au poil ^^
@+