[PHP] Comprobar String con saltos de linea

gfxgfx
 
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
gfx gfx
gfx
21208 Mensajes en 4872 Temas por 20719 Usuarios - Último usuario: goleDewsDycle Mayo 20, 2012, 03:08:07
*
gfx*InicioAyudarssBuscarCalendarioIngresarRegistrarsegfx
gfxgfx
0 Usuarios y 2 Visitantes están viendo este tema.       « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [PHP] Comprobar String con saltos de linea  (Leído 1119 veces)
y0m4357r0
Principiantes
*
Desconectado Desconectado

Mensajes: 115


Ver Perfil
[PHP] Comprobar String con saltos de linea
« en: Julio 28, 2011, 14:12:44 »

Hola gente!!  Grin Yo renegando de nuevo!! jajaja..
Les cuento, programe una función que comprueba un string si es valido o no.. es la siguiente:

Código
Code (php):
function comprobarCadena($string, $permitidos,$longitudMin, $longitudMax) {
   if (strlen($string) < $longitudMin || strlen($string) > $longitudMax) {
       return false;
   }
 
   if($permitidos == 'todos') $permitidos = "
abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRCSTUVWXYZ.,:;-_¡!¿?@1234567890+áéíóúÁÉÍÓÚÜü$\" "
;
if($permitidos == 'localidad') $permitidos = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRCSTUVWXYZ1234567890 ";
if($permitidos == 'tel') $permitidos = "-1234567890 ";
 
   for ($i = 0; $i < strlen($string); $i++) {
       if (strpos($permitidos, substr($string, $i, 1)) === false) {
           $GLOBALS['mensaje'] = "Error en el campo que introdujo: " . $string;
           return false;
       }
   }
   return true;
}
 

Recibe 4 parametros, primero compruebo la longitud de la cadena, que sea valida, con 2 de los parametros, y compruebo que tenga caracteres validos, si es un tel, le permito unicamente numeros y guiones, si es una localidad, solo letras y numeros y espacios y si se selecciona todos, quiero permitirle letras, numero, algunos simbolos, espacios, y saltos de linea.

En esta linea con el "enter" que le hice seguido de la primer comilla:
Código
Code (php):
   if($permitidos == 'todos') $permitidos = "
abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRCSTUVWXYZ.,:;-_¡!¿?@1234567890+áéíóúÁÉÍÓÚÜü$\" "
;
 
estoy diciendo que permito saltos de linea, lo probe en el localhost y anda barbaro.

El tema es que cuando lo subi al servidor, no me andan los saltos de linea, estuve mirando y renegando, tire un phpinfo() en mi local y en el server y el server tiene la version de php 5.2.17 y yo tengo la 5.3.0..

Entonces, me baje la version de php 5.2.11, y la probe en mi compu, y obtengo el mismo error que en el server.. Osea que el error ya se cual es.

Iba a mandar un ticket al server para decirles que actualicen el PHP, pero antes de eso, estuve leyendo la doc de php, y dice que la 5.2.17 es la última versión estable, entonces creo que lo mas lógico seria que yo adapte mi codigo a esa version supongo.

Queria saber, como se hacia antes, en versiones viejas para comprobar ese salto de linea... Busque en google, pero en todos lados sale como eliminar el salto de linea, yo no quiero eso! jaja..

Saludos y gracias!!

P/D: Modifique para que me muestre el codigo en colores! jiji!! Saludos! Smiley
« Última modificación: Julio 28, 2011, 14:16:15 por y0m4357r0 » En línea
snf
Administrator
*****
Desconectado Desconectado

Mensajes: 692


Ver Perfil
Re: [PHP] Comprobar String con saltos de linea
« Respuesta #1 en: Julio 28, 2011, 19:25:55 »

"\n" <- salto de linea

Pero capas vos queres usar regular expressions, no se si el codigo va a ser mas rapido pero si mas comprensible.
http://php.net/manual/en/function.preg-match.php
En línea

Posts "interesantes"
================
Que es una shellcode?
Bad chars y encoders/decoders en payloads

El tiempo es un gran profesor, pero lamentablemente mata a todos sus alumnos.
y0m4357r0
Principiantes
*
Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: [PHP] Comprobar String con saltos de linea
« Respuesta #2 en: Julio 28, 2011, 21:07:10 »

Siii, el \n es el que buscaba, pero ya lo había probado, porque asi se hace en java pero no me lo toma! Sad

Probe ahi en la cadena de $permitidos, agregar "\n...", "\\n...", "...".'<br>', pero ninguno de esos me lo toman, el <br> lo puse entre comillas simples con un punto porque no quiero permitir los caracteres < >, para uqe no venga nadie y me haga <?php //Codigo malicioso ?>

Saludos! Smiley
En línea
snf
Administrator
*****
Desconectado Desconectado

Mensajes: 692


Ver Perfil
Re: [PHP] Comprobar String con saltos de linea
« Respuesta #3 en: Julio 28, 2011, 21:56:53 »

Muchas veces se usa \r\n para hacer el salto de linea.
Es mas facil si imprimis la string que te esta llegando para que puedas ver cual es/son los caracteres que usa como salto de linea.
En línea

Posts "interesantes"
================
Que es una shellcode?
Bad chars y encoders/decoders en payloads

El tiempo es un gran profesor, pero lamentablemente mata a todos sus alumnos.
y0m4357r0
Principiantes
*
Desconectado Desconectado

Mensajes: 115


Ver Perfil
Re: [PHP] Comprobar String con saltos de linea
« Respuesta #4 en: Julio 29, 2011, 11:41:34 »

 Grin Grin Grin Grin

Gracias snf!!! Siii, lo solucione con el \r\n

Ha y con respecto a imprimirlo, si lo hacia, en esta linea de la function comprobarCadena que puse arriba de todo:
Código
Code (php):
$GLOBALS['mensaje'] = "Error en el campo que introdujo: " . $string;
 

y cuando a ese string le ponia un salto de linea me lo mostraba como un espacio, y si ponia un <br> entre medio, ahi si me mostraba error en el campo que introdujo: Aviso
                                      con salto de linea..

Y me lo ponía el salto de linea, pero no lo guardaba en la db porque no permito los < >,

Pero bueno, en fin! Solucionado!! Cheesy
Muchas gracias, de verdad!!  Grin
En línea
gfx
Páginas: [1] Ir Arriba Imprimir 
gfx
Ir a:  
gfx
Powered by SMF 1.1.16 | SMF © 2006, Simple Machines
HDL Group hackers

gfx