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

Résolu/Fermé
randoman - 17 sept. 2020 à 19:08
 randoman - 18 sept. 2020 à 09:36
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
A voir également:

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
17 sept. 2020 à 19:11
Bonjour
Tu dois mettre le bindvalue avec la valeur 3 pour ta variable :role
1
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 ^^!
0
problème résolu merci^^
0