Problema...

Ho una textarea che, all'invio, passa i dati in un campo del database.

Il testo inserito nell'area potrà essere sia semplice, sia html.

Quando passo i dati al DB eseguo i seguenti accorgimenti:
Codice PHP:
$corpomail $_POST['codenewspot'];
$corpomail str_replace("<""&lt;"$corpomail);
$corpomail str_replace(">""&gt;"$corpomail);
$corpomail str_replace("'""'"$corpomail);
$corpomail mysql_real_escape_string($corpomail); 
e quando li richiamo inverto le operazioni:
Codice PHP:
$corponl stripslashes($corponl);
$corponl ereg_replace("'","'",$corponl);
$corponl ereg_replace("&lt;","<",$corponl);
$corponl ereg_replace("&gt;",">",$corponl); 
..e queste ultime operazioni le faccio quando riporto il testo o l'HTML in una textarea per le modifiche.

Bene, funziona TUTTO (...o quasi...)

Quando invece dell'HTML inserisco del normale testo e vado a capo... non mi va a capo nella visualizzazione normale (stampata a video)
...mentre se lo richiamo della textarea per modificare, il testo è a capo...

Spero di essermi spiegato e non aver confuso solamente le idee.

Qualcuno sa dirmi perchè il mio codice mi vuole così male?