Foros del Web » Programando para Internet » PHP »

Validacion de telefono con patrones

Estas en el tema de Validacion de telefono con patrones en el foro de PHP en Foros del Web. Hola quiero hacer que valide un numero de telefono pero tambien que devuelva true cuando esta vacio pero si se escribe algo debe ser 9 ...
  #1 (permalink)  
Antiguo 14/05/2012, 14:28
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Pregunta Validacion de telefono con patrones

Hola quiero hacer que valide un numero de telefono pero tambien que devuelva true cuando esta vacio pero si se escribe algo debe ser 9 numeros 222222222 o numeros y 2 rallas asi: 222-222-222 y que no deja escribirse letras o caracteres de modo que lo comprueba pero que no sea obligatorio. Yo tengo uno con mas cositas pero lo que me pasa esq cuando escribe los 3 otros campos oblitarios y dejo el telefono me sale bien pero si escribo todos los campos bien me mete error tambien en el telefono porque?
el codigo es este :
Código PHP:
if(isset ($nombre) && !empty($nombre) && 
isset(
$email) && !empty($email) &&
isset(
$consulta) && !empty($consulta) &&
preg_match("@^(/d{3})?(-)?(/d{3})?(-)?(/d{3})?$@" $_POST["telefono"])) 
Soy principiante en los patrones.
Ayúdenme me pls
  #2 (permalink)  
Antiguo 15/05/2012, 09:41
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Validacion de telefono con patrones

Creo que no he e expresado bien.
Quiero hacer que valido 3 campos para comprobar si no son vacíos y uno para el teléfono móvil que lo compruebe solamente si tiene escrito algo de manera que no sea obligatorio pero si alguien escribe algo que no es un teléfono que le suelta un error.
Y intente hacerlo con un patrón pero no lo comprueba nada bien.
Alaguen me puede ayudar???
  #3 (permalink)  
Antiguo 16/05/2012, 06:14
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Validacion de telefono con patrones

Alguien pls!!
  #4 (permalink)  
Antiguo 16/05/2012, 07:38
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Validacion de telefono con patrones

Escribes raro, como que mezclas las personas gramaticales entre 2da y 3ra singular e imperativa constantemente, aunque se entienden todas tus peticiones, pero me da la sensación de que estoy entendiendo mal...

Código PHP:
//Declara una variable de error que empieza en 0 por que no hay errores todavía
$error=0;
//primero comprueba que estén todos los campos obligatorios, si no los tienes declara una variable de error:
if(isset ($nombre) && !empty($nombre) && isset($email) && !empty($email) && isset($consulta) && !empty($consulta))
}else 
$error=1;
//Luego revisa si tiene telefono, esta vez no hay error por que el teléfono no es obligatorio
if(isset ($telefono) && !empty($telefono)){
//Si se ha escrito un teléfono entonces hay que validarlo y si esta mal entonces hay error:
if(!preg_match("@^(/d{3})?(-)?(/d{3})?(-)?(/d{3})?$@" $_POST["telefono"])) $error=1;
}
//Por último haz l que debas hacer solo si no hay errores:
if(!$error){
//aqui va lo que debas hacer

Espero te sirva
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #5 (permalink)  
Antiguo 16/05/2012, 07:51
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Validacion de telefono con patrones

Hola, primero varias cosas para comentar de tu código. Lo primero que yo haria seria aislar el patrón de caracteres para verificar si funciona. Es mejor aislar la expresión regular y colocar solo esto.

Código PHP:
preg_match("@^(/d{3})?(-)?(/d{3})?(-)?(/d{3})?$@" $_POST["telefono"]); 
Esto es simplemente para saber si esta funcionando bien o no.

En segundo no sobra leer un poco este articulo

http://www.bloogie.es/tecnologia/pro...lares-para-php

así a primera vista la arroba(@) yo jamas la he utilizado para delimitar patrones. Generalmente se usa /. En el mismo artículo se habla que el digito decimal se puede escribir como \d y no /d como lo tienes. Yo por fuerza de costumbre lo suelo usar como [0-9].

El indicador ? implica que la expresión regular debe estar al menos una vez o ninguna entonces si lo colocas así (/d{3})? indicas que los números pueden llegar a estar una vez o ninguna (lo cual no tiene mucha lógica porque los números siempre deben estar ahí).

A mi también me dan lata eso de las expresiones regulares. Lee el articulo, realiza los cambios necesarios y nos comentas como te fue con eso.

p.s. Corrijo creo que /d si esta bien colocado. Los modificadores los suelo usar poco.
__________________
Blog de humor http://elcuasatar.net63.net/

Última edición por cuasatar; 16/05/2012 a las 07:57
  #6 (permalink)  
Antiguo 16/05/2012, 13:41
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Información Respuesta: Validacion de telefono con patrones

Cita:
Iniciado por stramin Ver Mensaje
Escribes raro, como que mezclas las personas gramaticales entre 2da y 3ra singular e imperativa constantemente, aunque se entienden todas tus peticiones, pero me da la sensación de que estoy entendiendo mal...

Código PHP:
//Declara una variable de error que empieza en 0 por que no hay errores todavía
$error=0;
//primero comprueba que estén todos los campos obligatorios, si no los tienes declara una variable de error:
if(isset ($nombre) && !empty($nombre) && isset($email) && !empty($email) && isset($consulta) && !empty($consulta))
}else 
$error=1;
//Luego revisa si tiene telefono, esta vez no hay error por que el teléfono no es obligatorio
if(isset ($telefono) && !empty($telefono)){
//Si se ha escrito un teléfono entonces hay que validarlo y si esta mal entonces hay error:
if(!preg_match("@^(/d{3})?(-)?(/d{3})?(-)?(/d{3})?$@" $_POST["telefono"])) $error=1;
}
//Por último haz l que debas hacer solo si no hay errores:
if(!$error){
//aqui va lo que debas hacer

Espero te sirva
Mira no esta mal tu respuesta pero yo cree otra que lo valida y muestre los errores de mejor forma pero me devuelve un error y por esto cree otro tema :

[URL="http://www.forosdelweb.com/f18/error-grave-993316/"]http://www.forosdelweb.com/f18/error-grave-993316/[/URL]

Porfavor ayudame :)
  #7 (permalink)  
Antiguo 21/05/2012, 14:06
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Validacion de telefono con patrones

Hice para validar sin patrones (de otra forma) pero igual no lo comprueba bien... es codigo es este:
Código PHP:
Ver original
  1. if(isset($_POST["telefono"]) && !empty($_POST["telefono"]) && strlen($_POST["telefono"]) == 9) {
  2.                 if(is_numeric($_POST["telefono"])) {
  3.                 $errores[5] = "Telefono no valido!";
  4.                 }
  5.                 }
Como seria para que me compruebe que sea 9 caracteres sin espacios y que sea numeros?
  #8 (permalink)  
Antiguo 22/05/2012, 13:17
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Validacion de telefono con patrones

if(is_numeric($_POST["telefono"]) and strlen($_POST["telefono"])==9)

__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #9 (permalink)  
Antiguo 22/05/2012, 13:35
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Validacion de telefono con patrones

Cita:
Iniciado por patilanz Ver Mensaje
Como seria para que me compruebe que sea 9 caracteres sin espacios y que sea numeros?
Este tema puede darte una idea:
http://www.forosdelweb.com/f18/aport...10/index2.html
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #10 (permalink)  
Antiguo 23/05/2012, 06:15
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Validacion de telefono con patrones

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Este tema puede darte una idea:
[url]http://www.forosdelweb.com/f18/aporte-expresiones-pcre-646110/index2.html[/url]
Gracias por tu respuesta pero del tema no entendí nada
Pero me di cuenta que lo comprobaba bien cuando la if esta sola en un documento y no cuando la pongo en otro con el código del tema http://www.forosdelweb.com/f18/error-994484/

Etiquetas: noobligatorio, patron, teléfono, validar
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:16.