[Javascript] Envoyer en GET (via ajax) un tableau de valeurs à PHP - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Javascript] Envoyer en GET (via ajax) un tableau de valeurs à PHP (/showthread.php?tid=7057) Pages :
1
2
|
[Javascript] Envoyer en GET (via ajax) un tableau de valeurs à PHP - Ter Rowan - 22-07-2013 bonjour j'envoie des éléments de formulaire en ajax (via jquery) à mon serveur (php)
et je veux récupérer mon tableau via unserialize en php jusqu'ici pas de problème... sauf que le manuel PHP m'indique que je ne dois pas utiliser unserialize dans le cas de données utilisateurs (non fiables) du coup, avant de réinventer la roue, qu'est ce que vous me conseillez ? Je pensais pour ma part parser moi même la chaine filter, qui n'a guère de complexité (juste un tableau associatif finalement) mais peut être existe il un standard ? RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - niahoo - 22-07-2013 Pas réveillé ce matin hein RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Ter Rowan - 22-07-2013 (22-07-2013, 09:28 AM)niahoo a écrit : Pas réveillé ce matin hein clair RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Ter Rowan - 22-07-2013 sinon, pas bien long côté php j'ai fait ça, mais ça m'intéresse toujours de savoir comment on fait "avec classe" ce genre de chose $filter contient la chaine _GET["filter"]
RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Xenos - 22-07-2013 Si ta chaine $filter est vide, ou si elle ne contient que "&": Citation :Notice: Undefined offset: 1 in D:\EasyPHP-12.1\www\t.php on line 7 Je conseillerai de la checker avant de l'utiliser, via une regex par exemple. RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Ter Rowan - 22-07-2013 (22-07-2013, 12:17 PM)Xenos a écrit : Si ta chaine $filter est vide, ou si elle ne contient que "&": oui je vais rajouter a la base il n y en a pas besoin car l'html nécessaire (ie les input "filter") est généré par le module mais effectivement si il y a "gruge" il faut que je controle RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Xenos - 22-07-2013 Eyuup, toujours prendre la gruge en compte, sinon, cela revient à considérer que la vue (le HTML) sécurise le contrôleur, et là, on va dans le mur... RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - KyleK - 24-07-2013 Utiliser unserialize en PHP avec une donnée utilisateur n'est pas "interdit", il faut juste avoir conscience qu'en faisait unserialize($_GET['machin']) alors $_GET['machin'] peut contenir absolument n'importe quoi et quand je dis "absolument n'importe quoi", ça veut dire absolument n'importe quoi. L'utilisateur peut y mettre "£$£¤^¨ùsdklj8èdqsd#", il peut y mettre des nombres, des arrays à 40 niveaux, des objets de n'importe quel type (type SOAP, type Iterator), il peut y mettre du binaire, des caractères nulls, il peut y mettre des éléphants, du café, donc attention aux court-circuits ! Il faut donc vérifier les types de tout ce que tu veux : Code : if(strpos($_GET['machin'], "O:") === false) RE: [JAVASCRIPT]envoyer en get (via ajax) un tableau de valeurs à PHP - Xenos - 24-07-2013 Hmm... D'apres la doc PHP pour unserialize: Citation : La chaîne linéarisée. Je trouve donc cela très "risqué" d'utiliser serialize et unserialize AVANT de vérifier la donnée d'entrée. En effet, l'utilisateur peut alors instancier n'importe quelle classe (donc, déjà, c'est assez chaud, surtout si l'utilisateur instancie une classe "Singleton" par exemple, ou instancie une classe qui est une collection d'objets qui vont saturer la mémoire). Exemple: Code PHP :
Si j'envoie, dans $get: Code : O:4:"test":0:{} Alors l'objet "test" est instancié, et __wakeup() est appelée, et ce AVANT de vérifier la donnée utilisateur. A mon avis, la bonne méthode consiste à vérifier d'abord les données utilisateurs, avant d'en faire quoi que ce soit, y compris un unserialize. D'ailleurs, la documentation PHP va dans mon sens: php.net a écrit :Avertissement RE: [Javascript] Envoyer en GET (via ajax) un tableau de valeurs à PHP - Ter Rowan - 24-07-2013 bien pour ça que, finalement, je n'unserialize pas et ai créé mon propre contrôle |