Validar telefono en formulario

Jorge
30 de Diciembre del 2005
Buenas quisiera validar el número de teléfono en un formulario, quisiera controlar que introdujera exactamente 9 dígítos y todo números, el código que tenga ahora es este:
"else if ($telefono == "") {
echo "<script>alert("Rellene correctamente el número de teléfono.Gracias");</script>";
}
else if strlen($telefono<9)
{
echo"<script>alert("Rellene el número de teléfono.Gracias");</script>";
}
Con este código controlo que no esté en blanco, esto lo hace correctamente, pero la parte de strlen($telefono<9) lo hace incorrectamente, puedo introducir un número de teléfono de sólo 2 dígitos, me podrías decir que hago mal, y además si me podríais decir también como controlar que no introduzca carácteres que no sean digitos.
Gracias

Califa
30 de Diciembre del 2005
Hola. El "else if" está mal escrito, por eso no está funcionando. Si lo que querés es que todos los números tengan necesariamente 9 dígitos (y sólo 9), que sean numéricos, una manera sencilla de hacerlo sería así:

<?php
$nro = is_numeric($telefono);

if ($nro != false) { // si sólo contiene números
if (strlen($telefono) != 9) { // si la cantidad es distinta a 9
echo "no tiene 9 dígitos";
}
} else { // si tiene letras
echo "no es numérico";
}
?>
el echo podés cambiarlo por algún código Javascript, para que te aparezca un alert en caso de error. De todas formas, en un formulario como éste creo que te convendría más hacer la validación directamente en javascript. (y sólo una vez que se pasa esa validación, se envía el formulario).

Suerte

rispas
30 de Diciembre del 2005
Primero: Hay cosas que se pueden manejar directamente desde el formulario definido para la captura de la información, esto es, el INPUT que definas para recibir el número de teléfono debes limitarlo al # de caracteres que necesitas. Ej:
<INPUT TYPE="text" NAME="telefono" MAXLENGTH="9" >
Por otro lado bien puedes validar con JavaScript o validas del lado del servidor, como mejor creas y te convenga de acuerdo al aplicativo que estés desarrollando.