Reputation: 839
For a variable inside a echo that contains HTML, where would I add slashes to escape the double quotes?
Example:
echo "<input type=\"hidden\" name=\"id\" value=".$row['id']." />";
This part:
value=".$row['id']."
Upvotes: 32
Views: 92771
Reputation: 173562
Some tips on outputting HTML with PHP:
htmlspecialchars()
to properly escape any "rogue" values you may have.Example using echo
:
echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />';
Or printf()
:
printf('<input type="hidden" name="id" value="%s" />',
htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8')
);
Or, in HTML mode:
?>
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); ?>" />
<?php
Upvotes: 65
Reputation: 44831
Use htmlentities
:
echo "<input type=\"hidden\" name=\"id\" value=\"".htmlentities($row['id'])."\" />";
Upvotes: 4
Reputation: 4095
How about use single quotes so you don't have to escape any quotes. Like so:
echo '<input type="hidden" name="id" value="'.$row['id'].'" />';
Upvotes: 0