|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() |
Bonjour,
Nouveau défi. Protéger un formulaire par un token stocké en base. Une invitation est envoyé par e-mail contenant le lien du formulaire incluant un token chaque fois différent. Aprés avoir modifié le routing.yml, j' envoi donc des urls de type: frontend_dev.php/evaluation/index/284a46a51a56859871278a651df4721b Ensuite j' essai de récupérer le token pour vérifier son existence en base, en me servant de la tool bar et de l' api. J' essai de faire comme ceci : Code :
Notice: Undefined variable: sf_request Fatal error: Call to a member function sfParameterHolder() |
||
|
00
|
|
|
#2 | ||||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
On va supposer que ta route est sous la forme
Code :
Code :
On peut aussi, peut-être, envisager de ce servir d'une DoctrineRoute, qui s'occupera de la vérification de l'existence du token dans la table (mais pas de la pertinence de la date)(quoique, a étudier...) dans ce cas, on serait ainsi sur de l'existence du l'enregistrement d'invitation, sans avoir à mettre une ligne de code dans l'action (ce qui n'empêche que la vérification de la date se fera dans le modèle, donc, il reste bien du code à créer).
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||||
|
00
|
|
|
#3 | ||
|
Membre régulier
![]() |
Oui mais j' ai besoin de savoir si le token existe dans la base
Au passage ton code me génère ceci.. 500 | Internal Server Error | sfException Call to undefined method evaluationActions::forward404until. Pour la route j' avais trouve ceci qui me semblait intéressant Code :
|
||
|
00
|
|
|
#4 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Citation:
Citation:
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#5 | ||
|
Membre régulier
![]() |
C 'est mieux.. .
Mais quelque soit le token passé dans l' url mon formulaire s' affiche.. Ce qui m' étonne qu' a moitié vu que je ne fais aucune requete dans la table invitation pour vérifier. d' ou mon Code :
|
||
|
00
|
|
|
#6 | ||||
|
Membre régulier
![]() |
En fait pourquoi faire compliquer si on passe le paramètre token comme ceci,
.......evaluation/index/?token=284a46a51a56859871278a651df4721b On peut le récupérer comme ceci.. Code :
Code :
|
||||
|
00
|
|
|
#7 |
|
Membre à l'essai
![]() Inscription : avril 2010 Messages : 26 ![]() |
essaie plutôt:
Code :
$this->forward404Unless($this->token = $request->getParameter('token')); |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() |
Cela ne change rien.. meme si je passe aucun token , je ne suis pas redirigé vers une 404.
Ma requete sql semble être effectuée mais pas stocké dans le bon objet. |
|
00
|
|
|
#9 | ||||
|
Membre à l'essai
![]() Inscription : avril 2010 Messages : 26 ![]() |
Tu utilise quelle route?
Sinon avec la route qui tu as donnée plutot, j'aurai plutot fait comme ça Code routing.yml :
Puis dans ton code tu peux faire ainsi après : Code action.class.php :
Normalement pas besoin de forward404unless car il va checker tout seul si le token existe! cf: la doc http://www.symfony-project.org/jobee...se_de_la_route ps: sur la documentation de symfony, le jobeet montre comment mettre en place un système de token assez simple mais qui marche très bien! |
||||
|
|
00
|
|
|
#10 | ||
|
Membre régulier
![]() |
Oui mais je me suis d' ailleuurs inspiré de cela.
Dans mon cas les token sont gérés dans une autre table puis envoyé par mail aux personnes concerné. Si le token est valide, le formulaire s' affiche en récupérant au passage qui est concerné ( l' évalué et celui qui évalue..). Mais quand j' essai Code :
j' obtiens un jolie Call to undefined method sfRoute::getObject() |
||
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Inscription : avril 2010 Messages : 26 ![]() |
Tu utilise quelle version de symfony?
Normalement le code que j'ai mis marche, du moins pour ma part j'utilise beaucoup les routing avancés |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() |
1.4.8...
|
|
00
|
|
|
#13 | ||
|
Membre régulier
![]() |
En fait c' était bete comme choux !!
Code :
|
||
|
00
|
Copyright © 2000-2012 - www.developpez.com