Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2011, 20h49   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 11
Points : 11
Par défaut isValid après un clear cache du navigateur

Bonjour,

Je test un formulaire avec "$this->form->isValid()" qui fonctionne normalement,
c'est à dire bien.
Mais quand je vide le cache du navigateur, il ne passe plus dans le isValid.
Apparemment, il perd la validité du formulaire reçu avant le clear/

Une petite explication?


Merci
tsumiko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 01h31   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
J'ai besoin de plus de précision sur l'enchainement des événements !

Je ne vois pas où intervient ton CC entre la réception des données du formulaire, en POST ou GET et la validation.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 12h17   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 11
Points : 11
Rien de plus naturel :
le "fl" est pour faire le "bind" avec le formulaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
    public function executeAccueil(sfWebRequest $request)
    {
        $filtre = $request->getPostParameter('fl', NULL);
        $this->form_filtre = new FiltreForm();
 
        if($request->isMethod('post')){
            $this->form_filtre->bind($filtre);
            if($this->form_filtre->isValid())
            {
// mon code
            }
            else
            {
                //$this->redirect404();
            }
        }
        else
        {
        }
    }
Cela fonctionne parfaitement tant que le cache navigateur n'est pas supprimé.
Même après l'erreur, si on relance le site, cela fonctionne à nouveau.

lance le site + submit -> ok
clear cache navigateur
submit -> plantage
page précédente + submit -> ok

Je ne l'ai pas précisé mais c'est seulement après le submit, un refresh de la page fonctionne ce qui est assez logique puisque ne passe pas par le "isvalid"

merci
tsumiko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 14h14   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Le cache du navigateur!!!

Quant on parle cache dans symfony il est tellement naturel de penser au cache du framework que j'en ai oublié que le navigateur en avait un lui aussi !

Je ne sais pas quel navigateur tu utilises et je n'ai jamais creusé la question, mais je pense que lorsque tu supprimes ainsi le cache tu dois aussi supprimer des données qui circulent masquées dans le form. Donc le retour est incomplet et donc le form plante. Regarde dans ta barre de debug la variable request entre les deux cas et tu devrais trouver la donnée manquante.

La solution ? ne pas vider le cache du navigateur lors de l'édition d'un form. En fait, je n'ai jamais eu ce type de problème sur aucun de mes sites, mais je n'ai jamais entendu parler d'un utilisateur vicieux qui viderait son cache en cours de travail ! Ceci confirme que le bug principal d'un ordinateur ce situe entre le dossier du fauteuil et le clavier !

Un truc dans ton code, tu aurais largement intérêt à remplacer ton if par un :
$this->forward404If() ce qui est plus lisible.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 16h11   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 11
Points : 11
Truc bizarre, quand je fais la même chose sous IE, ça passe sans problème (pour une fois lol)
Je continue mes investigations.
Sinon, autre chose :
En cherchant un peu sur le net, je suis tombé sur ce lien : http://www.dr-hamizo.com/forum/showt...1407#post31407
Bizarre, on vous pique les posts
en plus c'est même pas ma photo
tsumiko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 17h39   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je continue a considérer que, hors recherche purement théorique, c'est un cas de figure qui est tellement rare qu'il ne me semble pas intéressant d'y consacrer de la littérature.

Si jamais cela devait t'arriver, il faudra conseilller à ton utilisateur de ne pas vider le cache de son navigateur alors qu'il saisit un écran.

Pour l'autre information, c'est noté, merci pour l'information, elle est en cours de traitement.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 17h52   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2010
Messages : 35
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 35
Points : 11
Points : 11
Personnellement, je pense que c'est important,
il arrive (ça m'est arrivé) qu'un utilisateur ait plusieurs fenêtres d'ouvertes dont mon site et si, sur une fenêtre autre que la mienne, il souhaite effacer le cache du navigateur pour x raisons, si il revient sur mon site, et qu'il refait un sbmit, le site plante.
tsumiko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2011, 18h10   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Réellement, je pense que tu te prends la tête avec des problèmes qui n'en sont pas.

Après, et à moins d'avoir la possibilité de réécrire les différents explorateur, je pense que la solution est hors de notre portée.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h16.


 
 
 
 
Partenaires

Hébergement Web