Bonjour,
Afin d'éviter les doublons d'inscriptions dans ma base de données, j'ai mis une clé unique sur le champ numéro de téléphone (normalement il n'y qu'un numéro de téléphone par personne).
Le problème c'est que lorsqu'il y a un doublon, le message d'erreur est, pour un non-initié, incompréhensible (et peut laisser penser que c'est un bug du site).
Par exemple pour un doublon le message est le suivant

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0600000000' for key 'telephone' in C:\xampp\htdocs\sitesweb\formulaire\inscription.php:28 Stack trace: #0 C:\xampp\htdocs\sitesweb\formulaire\inscription.php(28): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\sitesweb\formulaire\inscription.php on line 28

Ma demande est toute simple aujourd'hui.
Est-il possible de personnaliser ce message de façon à avoir un message en français correct pour informer l'utilisateur qui voudrait entrer 2 fois le même numéro ?
Merci.

3 réponses


Carouge10
Réponse acceptée

bonjour.
a toi d'afficher un message d'erreur clair et précis.
a la place de récupérer l'exception, on affiche le message.
avec le code ça sera plus facile.

Alors si tu tentes d'inserer une valeur unique dupliquée, tu aura une erreur PHP

Il faut d'abord "valider" la requete, tu vérifies par toi même si le numéro existe, si il existe tu fais un redirect back avec message d'erreur en session, si c'est bon tu lances la requete SQL

Pour l'inspiration:

https://github.com/laravel/framework/blob/5.3/src/Illuminate/Validation/Rules/Exists.php

Merci j'ai résolu mon problème , tout est totalement fonctionnel