Ajouter un chiffre exacte dans la bdd dans un formulaire de création d'user. [Résolu]

Signaler
-
 randoman -
Bonjour,

petite question surement très idiotes,

si je veux faire un formulaire de création d'utilisateur
je fais un formulaire tous mon code avec les la méthode post. tout ca je suis ok

grosso modo, ci dessous je déclare toutes les colonnes de ma table "user"' a l'exception d'une colonne "role" car je souhaite que cette derriere se mette automatiquement a 2


if (isset($_POST['submit-signup'])){
$lastname = htmlspecialchars($_POST['lastname']);
$firstname = htmlspecialchars($_POST['firstname']);
$mail = htmlspecialchars($_POST['mail']);
$password1 = htmlspecialchars($_POST['password1']);
$password2 = htmlspecialchars($_POST['password2']);


if($sql = $db->query("SELECT * FROM users WHERE email = '$mail'")){
$compteur = $sql->rowCount();
if($compteur != 0){
$message = "<div class ='alert1'> Il y a déja un compte possédant cet e-mail </div>";
}elseif(!empty($mail) && !empty($mail)){
if($password1 == $password2){
$password1 = password_hash($password1, PASSWORD_DEFAULT);
$sth = $db->prepare("INSERT INTO users (lastname, firstname, email, password, role) VALUES (:lastname, :firstname, :email, :password1, :role)");

$sth->bindValue(':lastname',$lastname);
$sth->bindValue(':firstname',$firstname);
$sth->bindValue(':mail',$mail);
$sth->bindValue(':password1',$password1);

if($sth->execute()){
$message = "<div class ='alert alert-success'> Votre compte a bien été crée </div>";
}



MAIS (vous la sentez venir la question qui vous fera vous facepalm a vous qui ne débuttez pas en php/sql?)

si dans ma base de donnée j'ai une colonne "role" que je veux automatiquement remplir avec par exemple un 2... comment je fais?

je suis partie du principe que 1 = admin et 2 = modo. il n'y a qu'un seul admin et donc inutile de donner la possibilité d'en rajouter un... sauf que quand je fais mon formulaire il bloque car il lui manque une donnée celle de role.

bon le code doit pas être super propre je débute...

ps: j'aurais du utiliser des boolean sauf qu'il n'est pas impossible qu'il y'ai d'autre roles a l'avenir.
Configuration: Windows / Chrome 85.0.4183.102

2 réponses

Messages postés
29793
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
21 octobre 2020
2 863
Bonjour
Tu dois mettre le bindvalue avec la valeur 3 pour ta variable :role
ouah le temps de réponse ^^ merci


du coup

$sth->bindValue('3',$role);

mais comment est ce que je la déclare plus haut? désolé la question doit etre particulierement con.... j'avoue que je suis sur php depuis 13h et que j'ai l'esprit totalement embrumer....

edit :

plutôt
$sth->bindValue(:role, 3);

edit et du coup pas besoin de la déclarer... je crois qu'il faut que j'arrete pour ce soir je n'arrive plus a réfléchir ^^!
problème résolu merci^^