Insert dans une base de donnée
marcber
Messages postés
124
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
voici mon code PHP pour une page register qui permet au gens de s'inscrire et d'envoyer les donnée dans ma base de donnée (utilisateur et mot de passe)
mais quand on veux s'inscrire il me dit tj veuillez compléter les champ .... apparament il n'insert rien
mais quand on veux s'inscrire il me dit tj veuillez compléter les champ .... apparament il n'insert rien
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
if(isset($_POST['submit']))
{
$username = htmlspecialchars(trim($_POST['username']));
$password = htmlspecialchars(trim($_POST['password']));
$repeatpassword = htmlspecialchars(trim($_POST['repeatpassword']));
if($username&&$password&&$repeatpassword)
{
if(strlen($username)>=4)
{
if(strlen($password)>=6)
{
if($password==$repeatpassword)
{
$db=mysql_connect("votredomaine.com.mysql", "nom d'utilisateur", "mot de passe");
mysql_select_db("base de données", $db);
//$password =md5($password);
$sql = "INSERT INTO users ('', 'username','password') VALUES ('$username ', '$password ')";
mysql_query($sql,$db);
die('Inscription terminée. Vous pouvez vous <a href="login.php">connecter</a>');
}
else echo "Les mots de passe ne sont pas identiques";
}
else echo "Le mot de passe est trop court! min 6 caractères";
}
else echo "Le nom d'utilisateur est trop court! min 4 caractères";
}
else echo "Veuillez saisir tous les champs!";
}
?>
<title>Inscription</title>
<h1>Inscription</h1>
<form method="POST" action="register.php">
<p>Votre nom d'utilisateur</p>
<input type="text" name "username">
<p>Votre mot de passe</p>
<input type="password" name "password">
<p>Répétez votre mot de passe</p>
<input type="password" name "repeatpassword"><br><br>
<input type="submit" name="submit" value="valider">
</form>
<a href="login.php">Je possède déjà un compte</a>
10 réponses
-
Bonjour
<input type="text" name "username"> ... <input type="password" name "password">
Il te manque un "=" entre name et "username" et "password"
Donc tes champs n'ont pas de nom, donc dans ton analyse tu ne les retrouves pas.
Tu t'en serais rapidement rendu compte si tu avais fait unprint_r ($_POST)
au début de ton script pour voir ce que le formulaire te renvoyait. -
merci pour votre réponse
j'ai corrigé mais la base de donnée ne se rempli pas
la page inscription terminée vous pouvez vous connecter mais je n'ai rien dans la bas de donnée -
Pour diagnostiquer, modifie ton mysql_query comme ça :
mysql_query($sql,$db) or die (mysql_error());
-
il me mets ceci comme message
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''','username','password') VALUES (admin,963963)' at line 1
ma version MariaDB est
Software version: 5.5.38-MariaDB-1~wheezy - mariadb.org binary distribution -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
En effet, il y a une grosse erreur
INSERT INTO users ('', 'username','password')...
Dans les parenthèses, il devrait y avoir des noms de champs. Ton premier champ n'a donc pas de nom ?
Remplace parINSERT INTO users ('username','password')... -
je n'avais pas mis le premier champ car c'est un id qui s'incrémente tout seule
-
Tu confonds.
Tu peux mettre une valeur vide dans VALUES pour correspondre à un champ auto incrémenté dont tu as donné le nom dans la liste des champs.
Mais mettre un nom de champ vide, ça n'a jamais rien voulu dire
Autrement dit, tu peux écrire :INSERT INTO users (id, 'username','password') VALUES ('','$username ', '$password ')
ouINSERT INTO users ( 'username','password') VALUES ('$username ', '$password ')
mais en aucun casINSERT INTO users ('', 'username','password') VALUES ('$username ', '$password ') -
désolé de vous ennuyer comme ca
j'ai pris cette option
$sql="INSERT INTO users (id,'username','password') VALUES ('','$username','$password')";
et j'ai denouveau un message error
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''username','password') VALUES ('','admin','123123')' at line 1 -
je reviens vers vous j'ai réussis a faire ce que je voulait en grande partie grace a vous merci bcp
la dernière phrase j'ai fait la requete sql dans phpadmin et je l'ai transformer en langage php et elle fonctionne
pour info la voici
$sql = "INSERT INTO `users`(id,`username`, `password`) VALUES ('','$username','$password')";
encore un grand merci et bonne fin de journée -
Tu gagnerais beaucoup de temps (et moi aussi) si tu faisais l'effort d'apprendre les langages au lieu de demander aux autres d'écrire à ta place.
Tu as copié-collé, la requête, mais ce site transforme les accents graves ( ` ) en apostrophes ( ' ). Or, il ne faut pas d'apostrophes autour des noms de champs, mais des accents graves. Comme ces accents graves sont optionnels dans la plupart des cas, autant ne rien mettre du tout.
Attention, j'ai bien dit autour des noms de champs. Pas autour des valeurs. Ne reviens pas avec une erreur parce que tu as supprimé les apostrophes autour des valeurs.