2010-02-24 4 views
3

Je développe un web et que vous voulez faire en sorte que l'utilisateur peut créer des données XML slideshows afficherons. A cet effet, il existe un <textarea> où l'utilisateur peut écrire (copier/coller) XML et le soumettre. Le problème est que je suis en train de perdre des données: des caractères tels que <, >, et je pense que d'autres aussi, se perdre.XML via HTML Forms afficherons

Peut-être est un problème de cadre, pas sûr, je me sers Elgg et la réception des données avec get_input().

Update1: un code répondant au commentaire:

<form method="POST" action="http://for.bar/slash" enctype="text/xml"> 
<input name="add" type="submit" value="Create" /> 
</form> 

pour recevoir les données que j'utilise elgg get_input()

$data = get_input('data'); 
+0

Selon [cette réponse] (http://stackoverflow.com/a/2088880/1497596) à la question [Comment publier XML au serveur à travers un formulaire HTML?] (Http://stackoverflow.com/q/ 2088862/1497596), 'text/xml' n'est * pas * une valeur autorisée pour l'attribut' enctype'. – DavidRR

Répondre

1

Si je où faire une proposition sauvage je dirais qu'il ya une sorte de protection xss auto-magique utilisée par get_input(). Vous pouvez essayer de faire un print_r($_POST); ou peut-être Elgg est « désinfectante » tous $ _POST ainsi. Dans ce cas, vous devrez peut-être encoder les données en base64 avec JavaScript avant de soumettre la requête.

+0

Vous aviez raison! Merci beaucoup. La fonction get_input() a un paramètre $ filter_result = true. – conradsteink

+0

+1. Oui, cela se traduit par l'entrée étant manged par 'htmlawed_filter_tags', qui essaie de rendre l'entrée HTML si elle était censé être HTML ou non. XSS "protection" à l'entrée est toujours ** la mauvaise chose **, et c'est un exemple particulièrement mauvais de celui-ci. Je remets fortement en question la compétence des développeurs de ce package. – bobince

+0

C'est une "caractéristique" méchante qui est trop commune. Je suis d'accord que c'est le mauvais endroit pour un filtre xss. Je suis content que je puisse aider! – rook