Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/08/2010, 11:09
r4mos
 
Fecha de Ingreso: abril-2008
Mensajes: 12
Antigüedad: 16 años
Puntos: 2
Validar saltos de linea (\n) de un textarea en php

Hola amigos, tengo un textarea para que los usuarios se escriban mensajes entre sí. En el lado del cliente lo valido con el siguiente javascript y funciona correctamente:

Código:
function clean_letters_and_numbers_ext(letters){
var valid_letters="ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóúºª -0123456789,.;:_Ç(){}[]+*¿?¡!=/%$@¬\n\"'äëïöüÄËÏÖÜ";
letterok=true;
	for (i=0; letterok && i<letters.length; i++){
		letterok=false;
		for (j=0; letterok==false && j<valid_letters.length; j++){
			if (letters.charAt(i)==valid_letters.charAt(j)) letterok=true;
		}
	}
	return letterok;
}
Pero en el lado del servidor utilizando una función muy parecida, me funciona todo menos los "intros" (\n):

Código:
function clean_letters_and_numbers_ext($letters){
	$allow="ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚabcdefghijklmnñopqrstuvwxyzáéíóúºª -0123456789,.;:_Ç(){}[]+*¿?¡!=/%$@¬\n\"'äëïöüÄËÏÖÜ";
	$continue=true;
		for ($i=0; $continue && $i<strlen($letters); $i++){ 
			if (strpos($allow, substr($letters,$i,1))==false) $continue=false;
		}
	return $continue;
}
¿Por qué, en el lado del servidor, me coge las \" y no las \n?
¿Funcionaría mejor con expresiones regulares?

Muchas gracias