2017-10-10 7 views
0

J'ai cette application web et il y a environ 15 fichiers différents qui traitent de l'entrée de l'utilisateur.Comment retourner les données de la base de données normalement lorsque l'entrée a été nettoyée?

Chaque fois que je prends l'entrée utilisateur, il nettoie les caractères spéciaux en utilisant la fonction filter_var() pour ne pas avoir d'injection et autres joyeusetés.

Cependant, j'ai couru dans ce problème lorsque les données sont renvoyées vers le front-end avec les caractères spéciaux encodées encore, comme ceci:

"'Sample & 'Code'" 

devient et va à la fin de l'avant comme ...

"'Sample & 'Code'" 

ou quelque chose comme ça; Je pense que mon point de vue.

Ma stratégie actuelle est d'aller dans tous les fichiers en arrière-plan et l'utilisation

html_entity_decode(htmlspecialchars_decode([text], ENT_QUOTES)) 

à chaque sortie qui pourrait éventuellement avoir des entrées utilisateur.

Ainsi, ma question est de savoir s'il y a une manière plus efficace de le faire. J'utilise Vue sur le frontend pour boucler les données reçues du backend, donc je pense que ce serait probablement le même laps de temps si je le faisais sur le frontend plutôt que sur le backend. Aucune suggestion? Peut-être qu'il y a une stratégie actuelle que j'aurais dû garder à l'esprit avant d'encoder des données dans ma base de données, mais j'espère que quelqu'un pourra donner une réponse qui m'aidera dans de futurs projets.

Répondre

0

Pour php vous pouvez utiliser la fonction json_encode():

public function getSomeData() { 
    ... 
    return json_encode('Sample & 'Code'); 
} 

mon hypothèse est que si vous avez fait un var_dump('Sample & 'Code'), il imprimer 'Sample & 'Code'

+0

Quand je l'envoie à l'extrémité avant, je Je l'envoie comme vous l'avez dit, mais le texte est dans un tableau associatif, par exemple 'résultat' -> "Exemple & 'Code'". Le problème est que le texte n'est pas décodé en "Sample & 'Code'", à la place il ressemble au tableau associatif que je viens de donner. – DJSweetness

+0

@DJSweetness Je recréée votre problème avec 'json_encode ([ 'résultat' => html_entity_decode ("" ' Exemple & ' code ' " ")])' 'et je reçois {" résultat ":" \" 'Sample &' code '\ ""} '. – Grigio

+0

Je suis d'accord avec la méthode d'utilisation de json_encode, mais vous utilisez html_entity_decode pour transformer les données en forme visible, ce qui est la réponse au décodage du texte, mais ma question se penche plutôt sur une stratégie de conception ou une méthode plus simple. un html_entity_decode à toutes mes variables. – DJSweetness