Can't say iv'e ever seen PHP complain about using a # anywhere in any variable.
Iv'e just tested the code from your previous post and it works fine for me, even without the error suppression.
Couple of things i could suggest however:
encode all occurences of the # char to be printed in HTML as & # 35;
so eg:
<?php
$street = '1415 2nd Ave., #1902';
$street = str_replace('#','& # 35 ;');
?>
<form action="" method="post">
<input type="text" name="address" value="<?php echo $street; ?>">
</form>
NOTE: remove the spaces iv'e added between the & # and so on, iv'e had to put spaces in so that they display how i want them to
This will still display as a # in the web page, but in the source you'll see that the code is replaced by the HTML friendly version. (This page will help - http://www.ascii.cl/htmlcodes.htm)
The other option is to use PHP's various string manipulation techniques and set the # directly in the string by setting it's index to the character code, this however is quite an adanced thing and if the problem is at the HTML side, then it will not solve anything.
Cheers
Peter