Ver Mensaje Individual
  #11 (permalink)  
Antiguo 26/10/2008, 13:53
Avatar de Deschamps
Deschamps
 
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: necesito orientacion para programar seguridad

Cita:
Iniciado por HalconVigia Ver Mensaje
como sabra el script cuando tiene que poner 1,2 o 3 digitos??
entiendo que con el substr saco los caracteres pero... como sabra el script cuando sacar cuantos
Si tienes los códigos de miembro ya recuperados a través de una consulta, yo creo que las expresiones regulares pueden ser la solución para tu problema. Estoy estudiándolas ahora para aprender cómo van y me sorprendo de lo potentes y fáciles que son de usar.

A modo de ejemplo, usando el formato de miembro que apuntabas (ciudad+grupo+user+codigo), he probado con un script para ver si era capaz de separar todos los componentes del miembro... y la verdad es que es inmediato, y no depende de la longitud de cada uno de los apartados, lo descompone igualmente:

Código PHP:
<?php

    
function descomponer$miembro )
    {
        
$patron  "/^([a-z]+)G(\d+)([a-z]+)(\d+)$/i";

        if ( 
preg_match$patron$miembro ) )
        {
            
$desglose["user"] =   preg_replace$patron"$3"$miembro);
            
$desglose["grupo"] =  preg_replace$patron"$2"$miembro);
            
$desglose["codigo"] = preg_replace$patron"$4"$miembro);
            
$desglose["ciudad"] = preg_replace$patron"$1"$miembro);
            return 
$desglose;
        }
        return 
false;
    }

    
print_rdescomponer("YUCG1MATT23") );
    
print_rdescomponer("YUUCCCG1234MATTTTTT234567") );
?>
Y el resultado de la ejecución del script devuelve:

Código:
Array
(
    [user] => MATT
    [grupo] => 1
    [codigo] => 23
    [ciudad] => YUC
)
Array
(
    [user] => MATTTTTT
    [grupo] => 1234
    [codigo] => 234567
    [ciudad] => YUUCCC
)
Incluso identifica si algún código de miembo no tiene el formato correcto devolviendo "false". Si crees que es una alternativa, te animo a que repases alguno de los muchos tutoriales que hay por ahí sobre expresiones regulares.

Un saludo!

Última edición por Deschamps; 26/10/2008 a las 16:01