Why are the ampersands disappearing when I use a textarea tag?
Your CGI should manually convert leading &’s into the character entity for ampersands, otherwise character entities will get eaten by textarea tags and text input controls; e.g. the user originally enters an < entity (as in this FAQ entry); if you send this back to the user for editing, the browser will convert it to a < character, unless you escape the leading ampersand with &).