Voy a intentar ayudarte.
Un <textarea> se llena dinámicamente con PHP así
Código PHP:
Ver original<?php
/*codigo php*/
$texto="Hola esto es un texto de ejemplo, en realidad esta variable podría ser llenada a su vez dinámicamente con datos que introduzca el usuario, por ejemplo.";
?>
<textarea><?php echo $texto;?></textarea>
<?php
/*mas codigo php*/
?>
Con PHP puedes detectar las variables que envía el usuario al servidor mediante HTTP, pero no puedes detectar eventos como tal, entiéndase, pulsar botones, arrastre de ventanas, pulsación de teclas, etc.
En tu caso puedes detectar qué submit ha pulsado el usuario pero no es detectar en si mismo, más bien es comprobar qué variables envía el usuario.
Es por ello que para estos casos creo que lo mejor es comprobar con javascript y validar con PHP.
Por otro lado, \n y \r son salto de línea y retorno de carro respectivamente.
Un salto de línea no tiene por qué implicar necesariamente un retorno de carro ni un retorno de carro tiene por qué implicar un salto de línea.
De esta manera puedes mover hacia atrás el prompt en la misma línea y puedes mover el prompt arriba y abajo sin tener que volver al principio de cada línea en cada movimiento.
Para terminar; el atributo readonly de HTML hace que un campo sea solamente de lectura y no de escritura, en otras palabras, el usuario no podrá, en un principio, editar ese campo de texto, solamente leerlo.
Prueba con resize:none desde css para que el usuario no tenga la opción de redimensionar el textarea, pero no utilices row y colums para dar las dimensiones al text area, utiliza porcentajes o píxeles según te convenga.
Un saludo.