Foros del Web » Programando para Internet » PHP »

Sobre el PCRE (preg_match)

Estas en el tema de Sobre el PCRE (preg_match) en el foro de PHP en Foros del Web. Hola. He estado leyendo sobre esto y la verdad no logro entender, se me es muy dificil :( Necesito validar lo siguiente: Hice un script ...
  #1 (permalink)  
Antiguo 02/07/2011, 01:17
Avatar de Firez  
Fecha de Ingreso: junio-2011
Mensajes: 12
Antigüedad: 12 años, 10 meses
Puntos: 1
Sobre el PCRE (preg_match)

Hola.

He estado leyendo sobre esto y la verdad no logro entender, se me es muy dificil :(

Necesito validar lo siguiente:

Hice un script que me genera una especie de Key random dividida en 5 partes separadas con el caracter (-)

ejemplo:

G6S2-64S4-EQ1A-50L6-W5FG

I necesito confirmar que la persona al introducir el serial, lo ponga de manera correcta.

Código PHP:
//..
if(!empty($_POST))
{
        
$errores= array();
        
$keytrim($_POST["key"]);
//mas codigo
//..
        
if(!ValidarKey($key))
        {
            
$errors[] = idioma("KEY_INVALIDA");
        }
        if(
count($errores) == 0)
//etc etc.. 
Luego la funcion es para validar es:

Código PHP:
    function ValidarKey($key)
    {
        return 
preg_match("/([\w\-]+\-[\w\-]+\-[\w\-]+\-[\w\-]+\-[\w\-]+)/",trim($key));
    } 
Bueno el caso es que no me funciona el preg_match, me devuelve siempre error y no se que pueda estar malo y estoy cansada de leer y no logro ver el error entiendo :(

Última edición por Firez; 02/07/2011 a las 01:27
  #2 (permalink)  
Antiguo 02/07/2011, 01:32
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Sobre el PCRE (preg_match)

Qué raro, a mi me funciona bien.
Estás seguro que obtienes bien el valor por $_POST["key"]?
Intenta imprimiento la variable para ver qué es lo que obtienes.

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 02/07/2011, 01:54
Avatar de Firez  
Fecha de Ingreso: junio-2011
Mensajes: 12
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Sobre el PCRE (preg_match)

Pues nada, ya me di cuenta que todo este tiempo tuve la funcion bien y el error estaba en otros ifs que estaban antes del checkeo del string. Que verguenza XDD

bueno ahora si con una duda real, ya que mi funcion esta bien, no encuentro como limitarlo a exactamente 4 caracteres.

Osea, si inserto:
1-2-3-4-5 retornara true
asd-asd-asd-asd-asd retornara true
y asi sucesivamente a cualquier cantidad de caracteres, por ahora solo verifica que sean 5 bloques mas no la cantidad en cada y necesito que sean 4 XD.
  #4 (permalink)  
Antiguo 02/07/2011, 02:42
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Sobre el PCRE (preg_match)

Lee este manual muy bueno de expresiones regulares: http://boozox.net/php/manual-complet...ulares-en-php/

La verdad no sé mucho, pero se me ocurre que podrías hacer algo como
.{4} entre cada -

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 02/07/2011, 02:51
Avatar de Firez  
Fecha de Ingreso: junio-2011
Mensajes: 12
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Sobre el PCRE (preg_match)

Bueno, ya entendi !

Código PHP:
    function ValidarKey($key)
    {
        return 
preg_match("/([\w\-]{4}\-[\w\-]{4}\-[\w\-]{4}\-[\w\-]{4}\-[\w\-]{4})/",trim($key));
    } 
Ese es el codigo funcional..

Muchas gracias !

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:45.