View Issue Details

IDProjectCategoryView StatusLast Update
0000270ECLERD[All Projects] Internal reportpublic2015-12-27 22:34
ReporterXenosAssigned ToXenos 
PriorityhighSeveritymajorReproducibilityalways
Status CloseResolutionfixed 
Product Version 
Target Versionv1.0.0Fixed in Version 
Summary0000270: Les filter_input de PHP sont pourris
DescriptionIls corrigent silencieusement les erreurs d'entrées, alors que plusieurs comportements devraient pouvoir être demandés:
• Corriger les erreurs avec une valeur par défaut donnée
• Corriger les erreurs "au mieux" (genre, ne garder que les premiers caractères décimaux pour un entier)
• Lancer une exception si la donnée d'entrée est invalide / absente
Tagscoding
Attach Tags

Activities

Xenos

Xenos

2015-11-12 12:50

administrator   ~0000497

J'ai donc finalement une classe pour chaque entrée du jeu (par exemple, "MapcaseBuildingId" qui représente l'id d'un mapcase_building et ce peu importe la page où on l'utilise). Dans cette classe, je peux faire les checks coté serveur (filter_input customs), je peux générer les checks pour le coté client (input pattern ou type), et j'ai une constante donnant le nom du champ GET/POST/FILE/... associé à cette entrée (pour MapcaseBuildingId, c'est const FIELDNAME = 'id').

C'est ce fichier php/eclerd/input/* qui fait autorisé pour définir le nom de l'input, c'est à dire le name d'un input ou le nom à utiliser dans l'URL pour les requêtes GET.

J'aurai aimé pouvoir utiliser la valeur de FIELD_NAME dans mes codes XSL pour lier les deux (cad l'URL town/create?id=... devrait utiliser MapcaseBuildingId::FIELDNAME à la place d'un string "id"). Donc, le XSL deviendrait un fichier PHP, et le lecteur de fichier XSL devrait alors d'abord interpréter ce fichier puis renvoyer le code XSL après interprétation (en gros, ob_start(); require_once('...xsl.php'); $xslContent = ob_get_clean();). Mais si je transforme le fichier XSL en un xxx.xsl.php, alors je perds l'auto-complétion XML (pas d'auto-complétion XSL, SVG etc) et si je laisse le XSL comme étant xxx.xsl, alors je n'ai pas d'auto-complétion PHP dans ce fichier.

Les deux cas ont tendance à m'emmerder, donc je crois que pour l'instant, je vais laisser le id en toutes lettres (string) dans le fichier XSL, mais je garde à l'esprit que c'est le fichier PHP de php/eclerd/request/input/* qui fait autorisé concernant le nom du champ GET/POST/...

Issue History

Date Modified Username Field Change
2015-08-30 22:48 Xenos New Issue
2015-08-30 22:48 Xenos Assigned To => Xenos
2015-08-30 22:48 Xenos Status New => Accepted
2015-08-31 21:34 Xenos Target Version v1.0.0-a.7 => v1.0.0
2015-11-12 10:59 Xenos Status Accepted => In progress
2015-11-12 12:50 Xenos Note Added: 0000497
2015-11-12 16:19 Xenos Status In progress => Close
2015-11-12 16:19 Xenos Resolution open => fixed
2015-12-27 22:33 Xenos Tag Attached: coding
2015-12-27 22:34 Xenos Category Internal coding => Internal report