Bonjour,
Pour ton select sur l'email, il manque le "array" dans ton execute. $email n'est pas un tableau (idem username)
pas de strip_tags sur les données entrée en bdd (si ton user veut entrer "<br>toto" comme mdp, il ne sera forcément modifier)
username est différent de nom + prénom (comment fais-tu en cas d'homonyme ?)
Bonjour à tous,
J'ai dans un espace membre un formulaire d'inscription, coté serveur je contrôle si une adresse mail existe déjà dans la table membres afin d'éviter tout problème. J'utilise le contôle de recaptcha V3 de Google pour protéger le formulaire. L'insertion fonction correctement, ainsi que l'envoi du mail pour valider l'inscription.
Ce qu'il ne marche pas c'est que l'on peut s'incrire avce la même adresse mail.
Ce que je veux
Je souhaiterai éviter les doublons d'adresse mails, et que la variable $errors affiche bien : Cet Email est déjà utilisé pour un autre compte
Ce que j'obtiens
Je n'ai pas d'erreur de code quand la page est excécuté, mais la possibilité d'avoir deux membres différents avec la même adresss mail, et çà ce n'est pas cool.
Merci de votre aide, car je ne sais pas où ça pêche.
Bonne Journée
5 réponses
Bonjour Carouge 10,
Merci de te pencher sur mon problème, pour le email il faut faudrait faire : $req->execute( $_POST['email'] ); , idem pour le username ?
Pour le strip_tags, je ne souhaite pas de balises html , alors faudrait faire comment pour éviter les injections, utiliser : htmlspecialchars ?
Pour les nom + prénom , c'est pas le plus important, mais les inscriptiosn, sont souvant un pseudo, mais si tu as une solution ou une piste, je suis preneur.
- regarder comment tu as pour le execute de l'insertion...
- ne pas confondre injection et faille XSS. strip_tags et/ou htmlspecialchars s'utilisent à l'affichage
- l'email lui est unique, d'où le fait de le vérifier mais aussi de mettre le champs email de la bdd en "unique"
Merci Carouge10,
C'est tout bon, j'ai modifié mon ligne comme ceci : $req->execute([$_POST['username']]); et idem pour l'adresse mail. $req->execute([$_POST['email']]);
J'ai testé le message d'erreur indique bien ce que je souhaitais.
Problème résolu
pour mettre ton sujet en résolu.
tu as un bouton pour cela. il apparaît quand tu passes sur les messages qui ton aidé