CHaine coupé dans le value d'un input - PHP - Programmation
Marsh Posté le 29-01-2013 à 21:10:09
Lorsque tu as un espace dans ta chaine de caractères, ton attribut doit être quotté (value='...' au lieu de value=...). C'est une règle constante en HTML.
value='".$robotInfo->robot_name."'>";
Marsh Posté le 30-01-2013 à 15:45:56
Complément pour t'éviter de revenir : si ta valeur contient un guillemet, faudra l'échapper en le préfixant du caractère \
Marsh Posté le 30-01-2013 à 20:16:46
C'est un topic WTF en fait?
rufo a écrit : Complément pour t'éviter de revenir : si ta valeur contient un guillemet, faudra l'échapper en le préfixant du caractère \ |
Non, "\" c'est pour une quote littérale dans une chaîne PHP, pas pour du HTML
Mohi: bravo, ton script permet de prendre le contrôle de ton serveur via injection SQL et des pages via cross-site scripting:
Et quand t'auras fait ça, qui est un début, prière d'aller lire http://codex.wordpress.org/Data_Validation en entier, en cliquant sur les liens pour aller lire et comprendre les fonctions et documents mentionnés.
Marsh Posté le 31-01-2013 à 15:47:39
masklinn a écrit : C'est un topic WTF en fait? |
masklinn a écrit :
|
Désolé, je me suis mélangé les pinceaux. Ca, c'était dans le cas d'un insert dans une BD Mysql
Effectivement, c'est htmlspecialchars() qu'il faut utiliser pour transformer certains caractères en entités html.
Marsh Posté le 31-01-2013 à 18:50:40
rufo a écrit : Désolé, je me suis mélangé les pinceaux. Ca, c'était dans le cas d'un insert dans une BD Mysql |
Quand on insert dans une db, on ajoute pas des "\" à la main on utilise des prepared statements (de préférence, de très loin) ou la fonction d'escaping de la db
Marsh Posté le 29-01-2013 à 19:36:17
Bonjour,
je récupère une chaine de caractères dans ma BDD que j'affiche dans un formulaire.
Le problème est que cette phrase est coupé au premier mot à l'affichage.
Si j'essaye d'afficher la chaine en dehors de l'input, la phrase entière apparait correctement.
Voici mon code :
Si ma variable "$robotInfo->robot_name" contient "Bonjour tout le monde", il va afficher "Bonjour".
Merci de votre aide.