grahamsimmons Posted June 8, 2009 Share Posted June 8, 2009 How can I place the data Fred "O'Brien" Bloggs into the VALUE attribute of an INPUT tag without breaking the HTML code? Example ... //Get name from users table where id is 1. $res = @mysql_query("SELECT name FROM users WHERE ID='1'"); $name = mysql_result($res, 0, "name"); //Now contains Fred "O'Brien" Bloggs //Now place $name into INPUT tag <input type="text" name="name" value="<?php echo $name?>"> Whether I use double or single quote on the value attribute I'm going to get an issue due to the data being placed in it. To stop the error I could use mysql_real_escape_string, but I don't want to show escaped data to the user as that's not what they entered. Please help a man nearly in tears! Link to comment https://forums.phpfreaks.com/topic/161350-non-escaped-data-breaks-input-tag-value-attribute/ Share on other sites More sharing options...
Adam Posted June 8, 2009 Share Posted June 8, 2009 Converting them to HTML entities should work: <input type="text" name="name" value="<?php echo htmlentities($name); ?>"> Link to comment https://forums.phpfreaks.com/topic/161350-non-escaped-data-breaks-input-tag-value-attribute/#findComment-851454 Share on other sites More sharing options...
RussellReal Posted June 8, 2009 Share Posted June 8, 2009 when you submit that form, it WILL still be sent as & < etc... So when you receive the data, apply html_entity_decode() to it to make it plain text again without all the html specific entities Link to comment https://forums.phpfreaks.com/topic/161350-non-escaped-data-breaks-input-tag-value-attribute/#findComment-851455 Share on other sites More sharing options...
grahamsimmons Posted June 8, 2009 Author Share Posted June 8, 2009 Both htmlentities and html_entity_decode worked great, so not quite sure which I should use or even if it makes any difference! Thank you very much MrAdam and RussellReal for such a quite reply and my tears are now tears of joy Link to comment https://forums.phpfreaks.com/topic/161350-non-escaped-data-breaks-input-tag-value-attribute/#findComment-851457 Share on other sites More sharing options...
thebadbad Posted June 8, 2009 Share Posted June 8, 2009 You use both; htmlentities() to encode the data and then html_entity_decode() to decode it back to the original string. Although I would recommend the more simple htmlspecialchars() and htmlspecialchars_decode() in your example. Link to comment https://forums.phpfreaks.com/topic/161350-non-escaped-data-breaks-input-tag-value-attribute/#findComment-851464 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.