Expression régulière et base de donnée

Résolu/Fermé
2Max - 1 août 2008 à 10:59
 2Max - 1 août 2008 à 11:49
Bonjour, le projet de mon site web est de simulé la vie d'un homme.
J'ai créer un formulaire d'inscription qui enregistre les informations de l'utilisateur sur une base de donnée Mysql.

Pour éviter que l'utilisateur enregistre n'importe quel caractère j'ai mis en place des expression régulière mais voilà :

Les données fausse ne sont pas enregistré mais les bonnes si.
Je me retrouve donc avec des champs à moitié remplis dans ma base de donnée.

Comment empêcher l'enregistrement des donnée quand celle-ci ne correspondent pas aux expressions régulières ?

Merci.

7 réponses

ahmed.ben.salem Messages postés 86 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 28 avril 2009 4
1 août 2008 à 11:13
Bonjour;
Bon voila une idée c'est que apés l'insertion tu fait un delete de ce champ si les champs saisis par l'user sont fausse. Dans ce cas je vs propose d'utiliser la notion du trigger en Mysql, regarde ce lien, http://dev.mysql.com/doc/refman/5.0/fr/using-triggers.html.
Dans votre cas le trigger sera :
CREATE TRIGGER ins_sum BEFORE INSERT ON account // BEFORE sera AFTER
FOR EACH ROW SET @sum = @sum + NEW.amount;



Une autre idée c'est que tu fait un test avant que tu fait l'insertion, L'action du bouton sera suivit par un test sur tout les champs (d bon ou d mouvais champ) si oui tu fait l'insertion si non tu fait rien (si tu veux tu affiche une page HTML ou tu indique à l'user, les faux champs .
Bonne chance.
1
ahmed.ben.salem Messages postés 86 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 28 avril 2009 4
1 août 2008 à 11:28
re;
bin tt d'abord tu travail avc qel langage, pour le test par exemple :

if ( tout les champs sont pas vide)
INSERT ............
sinon
(tu affiche par exemple une page HTML pour l'user erreur d'insertion cause : champs vide)
fin

bonne chance.
1
ahmed.ben.salem Messages postés 86 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 28 avril 2009 4
1 août 2008 à 11:38
Re;
Ba le PHP il te fait le test if() the else
;)
1
Comment je peux faire un test ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Je travaille avec le langage XHTML, PHP.

Mais quel code j'utilise pour vérifier si tous les champs sont vides ?
0
Oui mais je met quoi dans le if() ?
0
J'ai trouvé ma réponse.

Pour les autres :

La fonction unset() détruit une variable.

J'ai donc mi :

if("**votre regex**", $_POST['exemple'];
{
$requete_exemple = $_POST['exemple'];
}
else
{
echo 'L'exemple n\'est pas valable';
unset($_POST['exemple']
}


Traduction :
Si la variable $_POST['exemple'] correspond au regex alors on l'enregistre sinon on met un message d'erreur et on détruit la variable, si il manque une variable alors rien ne s'enregistre dans la BDD.
0