Ver Mensaje Individual
  #5 (permalink)  
Antiguo 29/03/2012, 00:32
Avatar de JairLizcano
JairLizcano
 
Fecha de Ingreso: junio-2008
Ubicación: Santander, Colombia
Mensajes: 608
Antigüedad: 18 años, 3 meses
Puntos: 53
Exclamación Respuesta: Como valida numero de telefono

Prueba con lo siguiente:

Código PHP:
<?php 
require ("ClassMathGuard.php"); 
if(
$_POST) 
{ 
$javascript_enabled = trim($_POST['browser_check']); 
$department = trim($_POST['dept']); 
$name = trim($_POST['name']); 
$email = trim($_POST['email']); 
$phno = trim($_POST['phno']); 
$subject = trim($_POST['subject']); 
$msg = trim($_POST['msg']); 
$selfcopy = trim($_POST['selfcopy']); 


//mail settings 
$sales_address = "[email protected]"; 
$support_address = "[email protected]"; 
$billing_address = "[email protected]"; 
$headers = "From: ".$email; 
$message = "Contact name: $name\nContact Email: $email\nContact Phone: $phno\n\nMessage: $msg"; 

if (
MathGuard :: checkResult($_POST['mathguard_answer'], $_POST['mathguard_code'])) {  

    if ( 
$department == "sales") $to = $sales_address; 
    elseif ( 
$department == "support") $to = $support_address; 
    elseif ( 
$department == "billing") $to = $billing_address; 

    if ( 
$name == "" ) 
    { 
        
$result = "Name field is required"; 
    } 
    elseif (!
preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/", $email))  
    { 
        
$result = "Enter a valid email address"; 
    } 
    elseif(!(
preg_match("/^([0-9]{4})(-)([0-9]{7})$/", $phno)) || !(preg_match('/^([0-9]{3})(-)([0-9]{4})(-)([0-9]{4})$/', $phno))) //check for a pattern of 91-0123456789 
    
{ 
        
$result = "Enter a valid phone number"; 
    } 
    elseif ( 
$subject == "" ) 
    { 
        
$result = "Subject is required"; 
    } 
    elseif ( 
strlen($msg) < 10 ) 
    { 
        
$result = "Write more than 10 characters"; 
    } 
    else 
    {     
         
            
mail($to, $subject, $message, $headers); 
        if( 
$selfcopy == "yes" ) 
            
mail($email, $subject, $message, $headers); 
        
$result = "Your mail has been sent succesfully!"; 
         
    } 
} 
else 
$result = "Bad Answer, Please try again!"; 
     
    if(
$javascript_enabled == "true") { 
        echo 
$result; 
        die(); 
    } 

} 
?>
Ahora bien, no sé realmente a qué formato de números lo estés adaptando, la expresión regular te está indicando que sí o sí debe ser la primera línea de número de 4, un guión (-) y la siguiente línea de 7 caracteres, posteriormente si tiene más o menos caracteres será considerada como incorrecta (para el caso del primer patrón).

Si tiene los rangos de valores, con gusto te adaptaría la expresión regular.

Buena suerte.
__________________
Programar dejó de ser una profesión acusada en la oscuridad y disfrutada fríamente... para convertirse en un arte.