I’m using php and a mysql database. I’ve a page where users can edit a name. When i select to edit the name “O’Brien” the only thing that appears in the input box is “O” before i start editing it. When these names are added i have the code below featured before it writes it to the database:
I thought that would have fixed it, as it’s writing “O’Brien” to the database but it’s not. Below is the code from the form that displays the name in the text box:
I see that the ENT_QUOTES optional parameter is needed to make it convert the single quotes. I always doublequote my value=“” so I don’t typically need that for this type of thing.
But both htmlentities and htmlspecialchars have the ENT_QUOTES option. Is there a reason htmlspecialchars would be preferable to htmlentities?
htmlspecialchars is general purpose tool, does as little, as not to harm anything. should be used by default.
htmlentities is very complicated tool, will do many unexpected things and should be used with caution, not by default.
it is strongly suggested to use utf-8 encoding instead of use of htmlentities
I doubt one want their text to be represented with entities. So - don’t use it. Especially if you want to convert only control chars, not text
Your responses sent me off in search of more information on the differences between the two functions. Thanks for the heads-up. I learned that I’ve been using htmlentities() in a lot of places where I should be using htmlspecialchars().