|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
Bonjour,
Je travail actuellement sur un outil de gestion des factures non conformes. Il est basé sur les technologies xHtml 1.0 strict, CSS 2, Javascript ( avec JQuery 1.6.1), et Php 5.3.3. L'outil est déjà en production depuis plusieurs mois et j'essaye d'y apporter des améliorations et notamment d'y corriger les bugs. Il y en a un qui me résiste et dont je n'arrive pas à trouver la source. C'est au moment de la création d'une lettre de non conformité. L'utilisateur rentre les données dans un formulaire : fichier "creer_lettre.php" : Code :
fichier "verif_lettre.js" : Code :
fichier "verif_lettre.js" : Code :
J'ai donc utilisé une classe de gestion d'erreur que j'ai fait pour un autre outil et qui récupère l’environnement au moment du problème et me le transmet par mail. J'ai ensuite fait un trigger_error(); non fatale à la fin de la fonction de traitement du formulaire pour comparer l'environnement quand tout fonctionne bien et quand ça bug. Le problème vient tous simplement que environ 1 fois sur 10 la super globale $_POST est vide ! Comment est-ce possible que les données ne soient pas transmises de façon aléatoire ? Quelqu'un aurais une idée ? Apparemment, le contenu du formulaire ne serait pas en cause car les utilisateurs quand ils rencontrent le problème refont la saisie et tous fonctionne correctement. Si vous avez besoin d'informations complémentaires, n’hésitez pas à me demander. pistes déjà explorées : Réponse de Maraumax : Citation:
De plus, tous les utilisateurs sont sur le même système d'exploration, une version appelé Neptune de Windows XP customisé par un sous-traitant. Il utilise donc tous principalement Mozilla Firefox 3.5.3 sinon Internet Explorer 6.0.X. Les utilisateurs n'ont pas la main sur le parametrage et ne peuvent désactiver JavaScript. Les utilisateurs sont tous sur le même réseau interne. Néanmoins, j'ai l'impression qu'avec mon ordinateur de développement(Ubuntu 11.04 et Mozilla Firefox 7.0.1), l'erreur ne se produit jamais. J'ai une connexion externe. La prestation n'est pas formidable mais je ne pense pas du moins je n'espère pas que le problème vienne de là. Réponse de Desolation : Citation:
Est-il possible que les apostrophes posent problème sur la partie xHtml / JavaScript ? |
||||||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 156 ![]() |
tu ne fais pas de vérification lorsque $_POST est vide ?
tu ne protèges pas tes valeurs (pas d’échappement) ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
Merci de ta réponse.
Les valeurs sont protégées par l'encodage. J'encode les apostrophes en appelant la fonction "htmlentities" avec "ENT_QUOTES" en second argument. Pour la vérification du nombre d'élément dans "$_POST", Je ne teste leurs existences uniquement lorsqu'ils ne sont pas obligatoire. Pour les champs obligatoires qui seraient absents je laisse mon gestionnaire d'erreur s'en charger. Normalement, dans ce cas de figure le script est interrompu et un message d'erreur est retourné, mais afin de quantifier la fréquence du bug et d'avoir une photographie du contexte au moment où il s'est manifesté, je n'interrompt pas le script volontairement. |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : septembre 2010 Messages : 7 156 ![]() |
je te déconseille fortement de faire ça, dans ta base les données doivent être exactement les mêmes qu'a la saisie
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
Convertir une seule fois les données à la saisie et pouvoir les afficher directement ensuite économise les ressources de mon serveur.
Pourquoi dans ma base, les données doivent être exactement les mêmes que celles saisies ? Penses-tu que cela pourrait empêcher une super globale comme "$_POST" de s'initialiser ? |
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : septembre 2010 Messages : 7 156 ![]() |
Citation:
ça c'est autre chose, si le javascript est déactive ou qu'il y'a une erreur au niveau du navigateur, même si t'as pas de bouton de submit, le simple fait de faire la touche Entrée envoie ton formulaire
__________________
http://blog.stealth35.com/ |
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
La touche entrée n'a pas d'effet sur les ordinateur des utilisateurs , je viens d'essayer. Et si cela fonctionnerait ça n'expliquerait en rien le fait que les informations saisies ne soient pas transmise.
Ce que je ne comprends pas, c'est comment une page qui contient un formulaire avec des balises "<select></select>" quand on l'envoie, appel un script Php avec un $_POST vide. |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2010 Messages : 7 156 ![]() |
quand t'es dans un champs si, de ton coté est ce t'arrive a faire qu'a un moment ça ne marche pas ?
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
J'ai essayé, mais je n'es jamais réussit depuis mon ordinateur de développement qui ne tourne pas sur le même OS et qui a une autre connexion.
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Vivien Étudiant Inscription : mai 2007 Messages : 8 ![]() |
Les testes sont finis et impossible de faire planter l'application sur mon PC avec un réseau externe.
Je pense que ça vient soit du réseau interne soit de la version du navigateur. Hélas, je n'est pas la main dessus ! |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2010 Messages : 7 156 ![]() |
si ta page sert uniquement au formulaire, fait un syteme de log, quand le _POST est vide, envoie tout le contenu de _SERVER dans un fichier daté, (tu peux meme voir si c'est en AJAX ou pas)
__________________
http://blog.stealth35.com/ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com