For input, the only way to go to a new line is to use a <textarea> element which supports new lines. You can store this data raw as it will contain the linefeeds within it, but to display it in HTML you need to use nl2br to add <br/> to it.
If the input they are on is not a textarea, hitting the enter key will submit the form. You can't do anything to control that in PHP, that would require that JS be in use to respond to the event instead.
In a text field it should show up the way it was entered with \n being invisible.
In html use nl2br().
If storing the text in the DB store it there in the way your user entered it and just use nl2br() for html - assume that any time you pull it out will be for a text area.
Thats pretty much the same thing Fou said but with a slightly different twist on the explanation.
//Please don't use this for your form processing:
if (isset($_POST['submit']))
//Internet explorer has a bug and does not always send the submit value.