CHaine coupé dans le value d'un input

CHaine coupé dans le value d'un input - PHP - Programmation

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 :
 

Code :
  1. $robotInfo = $wpdb->get_results("SELECT * FROM kel_classement_robot WHERE id_robot = '". $_GET["id_robot"]."'" );
  2. [...]
  3. echo "<input type='text' id=".$nameCol." name=".$nameCol." value=".$robotInfo->robot_name.">";
  4. [...]


 
Si ma variable "$robotInfo->robot_name" contient "Bonjour tout le monde", il va afficher "Bonjour".
 
Merci de votre aide.

Reply

Marsh Posté le 29-01-2013 à 19:36:17   

Reply

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."'>";


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 30-01-2013 à 09:39:59    

Merci ça marche ! :)

Reply

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 \ ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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 [:pingouino]

 

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.

Message cité 1 fois
Message édité par masklinn le 30-01-2013 à 20:19:01

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 31-01-2013 à 15:47:39    

masklinn a écrit :

C'est un topic WTF en fait?


 

masklinn a écrit :


Non, "\" c'est pour une quote littérale dans une chaîne PHP, pas pour du HTML [:pingouino]
 
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.


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. :jap:


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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 [:petrus75]


Message édité par masklinn le 31-01-2013 à 18:51:10

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed