Appliquer une fonction lors de l'envoi d'un formulaire : URGENT PLZ
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
24 déc. 2008 à 14:51
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 2012
-
2 janv. 2009 à 11:30
Bonjour,
J'ai un formulaire, qui appelle une fonction javascript par un ONSUBMIT qui vérifié si les champs saisis ne sont pas nuls, mais j'ai également un automate qui vérifie la validité de l'adresse email.
Mon probleme est que cet automate est en PHP et je ne sais pas comment envoyer cet automate lors de la validation du formulaire. Quelqu'un peut-il m'aider s'il vous plaît ?
Quelques petites infos si vous en avez besoin :
Mon champs email se nomme 'email' la variable '$_POST['email']' est contenue dans une variable appelée '$r_email', ma page du formulaire est 'inscription.php' et la page vers laquelle elle pointe et qui sert à ecrire dans al base est 'envoi_inscription.php'
Voilà Merci beaucoup
Ju'
A voir également:
Appliquer une fonction lors de l'envoi d'un formulaire : URGENT PLZ
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 24 déc. 2008 à 18:28
Salut,
J'avoue ne pas très bien comprendre ton problème.
je ne sais pas comment envoyer cet automate lors de la validation du formulaire => que veux tu dire par là ?
Pour décomposer un peu :
inscription.php
formulaire
vérification Javascript de la validité des champs (y compris mail pourquoi pas ?)
Envoi du formulaire après traitement en local sur le poste du client vers envoi_inscription.php
envoi_inscription.php (traitement sur le serveur)
nouvelle vérification de toutes les variables envoyées, vérification de la validité de l'adresse mail
insertion dans la base de données
En ce qui concerne ta fonction ControleEmail franchement ce n'est pas le top, pour ne pas dire pire :-) Tu peux la remplacer par 2/3 lignes (jette un oeil aux regex)
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 26 déc. 2008 à 09:08
Bonjour et merci de ta réponse. Et bien que ce soit sur 2/3 lignes ou un truc méga long comme j'ai fait ne change pas mon probleme.
Oui enfait tu as bien décomposé.
Le visiteur s'inscrit sur inscription.php où j'ai mon formulaire "form_inscription" auquel j'ai accolé un onsubmit, sur ma fonction de verification de chamsp vides en javascript.
Si aucun champs n'est vide, on passerai à la page "envoi_inscription.php" qui ecrit toutes les infos du formulaire dans la base et qui envoi au visiteur un mail de confirmation d'inscription.
Le seul bug, est que quand il rentre un mail qui n'est pas valide, il execute tout bien, et à la fin il renvoi un erreur SQL malgré qu'il a déjà tout fait. Donc pour eviter cette erreur j'aimerais bien pouvoir déclencher cette fonction, mais je ne sais pas comment la faire fonctionner (ainsi que toutes les autres fonctions PHP depuis un formulaire).
ça se trouve c'est un truc tout bete qui remplacer le ONSUBMIT ou un truc du genre... ?
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 26 déc. 2008 à 12:03
Salut,
Bonjour et merci de ta réponse. Et bien que ce soit sur 2/3 lignes ou
un truc méga long comme j'ai fait ne change pas mon probleme.
=> certes, mais en tout état de cause ça rendra ton code 1000 fois plus lisible, plus rapide et sans aucun doute plus fiable.
Juste un exemple au pif : "d@wa.n_a.do-o.fr" passe sans problème ta fonction .... chui pas sur que ce soit une adresse bien valide hein.
Donc au final remplacer ta fonction par une autre t'évitera bien des problèmes.
Donc pour eviter cette erreur j'aimerais bien pouvoir déclencher cette
fonction, mais je ne sais pas comment la faire fonctionner (ainsi que
toutes les autres fonctions PHP depuis un formulaire).
=> j'ai l'impression qu'il est utile de rappeler que :
Les scripts javascript tournent sur la machine du visiteur, ils ne fonctionnent pas sur le serveur
Les scripts php tournent sur le serveur, il est "impossible" de les éxécuter sur la machine du visiteur
Ceci étant dit, côté serveur (envoi_inscription.php) :
$r_email = strip_tags($_POST['email']); // traitement sécuritaire des données reçues de inscription.php
//contrôle que l'eMail est valide en faisant appel à la fonction
if (false === ControleEmail($r_email)) die('L\'adresse mail que vous avez renseignée est invalide');
$r_email = mysql_real_escape_string($r_email); //protège tous les caractères qui pourraient poser pb à la requête SQL
//... insertion en base de données
Cordialement,
Kohntark -
Vous n’avez pas trouvé la réponse que vous recherchez ?
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 26 déc. 2008 à 16:46
Ok merci 1000 fois pour ces explications claires.
Et je suis d'accor avec toi pour la fonction sur 2/3 lignes. En 2 secondes tu as déjà trouvé un bug lol
Je doti absolument finir ma partie graphique sous photoshop et ensuite je me replonge dans le PHP pour la fonction mail, je ne pense pas avoir le temps avant lundi dans la journée, donc je le ferais dès lors.
Et je te tiendrais au courant si j'y arrive ou pas.
kohntark
Messages postés3705Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 2 janv. 2009 à 11:30
Salut,
Non, sauf erreur de ma part ça va dépendre de la base de données que tu utilises derrière.
Reste juste, si il y a lieu, à échapper (avec le caractère qui va bien) les caractères qui doivent l'être (c'est ce que fait en 1 seul fonction native mysql_real_escape_string, mais rien n'empêche de faire la même chose avec une fonction utilisateur)