|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
Hello.
Je souhaite créer un formulaire de contact. J'ai déja parcouru pas mal de tutos qui expliquent comment créer un formulaire permettant à un visiteur d'envoyer un message sur une adresse fixe. Mais ce que je cherche à faire, c'est un formulaire qui permet à un visiteur lambda d'envoyer un message à une personne (dont les coordonnées sont stockées dans une base). Je bloque sur un point : comment passer l'id de la personne à qui on écrit à mon formulaire ? En gros, j'ai créé mon formulaire : Code :
J'ai commencé comme ça : Code :
Alors première question : est-ce que c'est la bonne méthode (je débute sur symfony...) ? Deuxième question : comment renseigner mon champ 'id' ? Ah... et question bonus : je vais ensuite ajouter des validateurs pour m'assurer que le visiteur renseigne tout correctement. Comme mon formulaire est inclus dans une page (et pas sur une page spécifique de contact), comment rediriger mon formulaire sur cette même page en cas d'erreur ? Merci d'avance pour votre aide ! |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Tu peux mettre le code de ton form ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
Le voilà :
Code :
|
||
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je ne comprend pas trop comment tu comptes récupérer l'id du destinataire dans ton form alors qu'il s'affiche mais n'a pas de validateur. Et de plus il conviendrait que le scripteur du message connaisse l'id de l'enregistrement du destinataire. Peu probable.
Il faut le passer en hiden. Une autre solution serait de le passer dans l'url de retour du message POST généré par la balise form. En effet, vus que l'on parse l'url au retour quelque soit le type de message (POST ou GET) tu peux renvoyer des informations par ce biais, elles seront analysée par le système de route. Ce qui évite qu'elles ne circulent dans des champs cachés mais potentiellement modifiables. Pour mettre une valeur dans un champs il faut faire un setDefault(). Pour la récupérer il faut un validateur, même si c'est un champ caché.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
En fait, l'id de mon destinataire est précisé dans l'url de ma page qui contient le formulaire de contact.
Est ce que je peux récupérer cette valeur et l'utiliser dans mon formulaire ? |
|
|
00
|
|
|
#6 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Non, il faut qu'elle soit dans l'id appelée par le form du formulaire
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#7 | ||
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
J'ai fait le test suivant :
Code :
Code :
<form id="contact" action="/frontend_dev.php/contact/submit/id/2" method="POST"> Donc a priori, le problème de l'id est réglé. Il ne me reste plus qu'un souci : quand je valide mon formulaire, je suis redirigé vers la page "contact/submit/id/2", mais si un de mes validateurs retourne une erreur (champ non renseigné par exemple), comment faire pour que les messages d'erreurs soient affichés sur ma page de départ ? |
||
|
|
00
|
|
|
#8 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Jamais essayé. Je devrais.
Regarde un peu comment il le gère dans sfGuard, j'ai l'impression qu'ils le font. Mais sans en être sur. Si non il faudrait en passer par du javascript.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
ok.
Je vais jeter un oeil. Merci pour ton aide. |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 146 ![]() |
c'est marrant, ce fil ressemble étrangement au mien.
Personnellement, pour me souvenir de mon destinataire, j'ai mis son "DoctrineRecord" dans un attribut du user... ça marche bien. L'utilisateur ne voit pas ces infos... maintenant, si c'est une bonne pratique de prog, ça reste à voir, je n'en sais rien en fait. |
|
|
00
|
|
|
#11 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
L'objet user est l'idéal pour stocker des informations pertinentes pour la session. Seul inconvénient, elles le sont pour la session. Donc, si en fonction de ces déplacement dans le site l'utilisateur se retrouve avec deux fenêtres de dépôts de messages ouvertes pour deux destinataires différents, il y a un risque de collision. Si le destinataire dépend exclusivement d'un seul correspondant, c'est parfait.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() Inscription : novembre 2006 Messages : 146 ![]() |
Snif, je n'y avais pas pensé... je retourne à l'id du destinataire dans un champ caché...
|
|
|
00
|
|
|
#13 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
L'id est moins génante, sauf si ton champ s'appelle admin_id et qu'il est possible de modifier le mot de passe par une url change_passe/id/nouveaupasse (déjà vu !)
C'est moins gênant de passer l'adresse email dans un champ ou un nom plutôt qu'un pseudo. L'id seul n'est probablement pas catastrophique.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#14 |
|
Candidat au titre de Membre du Club
![]() Inscription : février 2009 Messages : 44 ![]() |
Merci à vous deux pour vos conseils.
J'ai finalement opté pour l'id du destinataire dans un champ caché, et le traitement de mon formulaire fonctionne
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com