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! Quote 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); ?>"> Quote 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 Quote 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 Quote 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. Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.