Академический Документы
Профессиональный Документы
Культура Документы
Que la clave tiene al menos 6 caracteres Que el password tiene como mximo 16 caracteres Que tiene al menos 1 letra minscula Que al menos tiene 1 letra mayscula Que tiene al menos un carcter numrico
Para hacer la funcin en realidad necesitaramos recibir solamente la clave a ser validada y se devolvera un boleano para decir si es o no vlida la contrasea. Pero por mejorarlo un poco, hemos decidido recibir dos parmetros, uno con la propia clave y otro con una variable que recibiremos por referencia y que rellenaremos con el error que se haya detectado, si es que no se valid el password.
if (!preg_match('`[a-z]`',$clave)){ $error_clave = "La clave debe tener al menos una letra minscula"; return false; } if (!preg_match('`[A-Z]`',$clave)){ $error_clave = "La clave debe tener al menos una letra mayscula"; return false; } if (!preg_match('`[0-9]`',$clave)){ $error_clave = "La clave debe tener al menos un caracter numrico"; return false; } $error_clave = ""; return true; }
Como hemos podido ver, es una funcin bien simple. Va revisando punto por punto todas las cosas que queremos comprobar en la clave. Usa expresiones regulares bien sencillas para saber si tiene al menos una letra (una expresin para ver si tiene minsculas y otra para maysculas) y al menos un nmero. Podramos aadir o quitar de la funcin tantas validaciones como deseemos, para que se ajuste a nuestras necesidades. Por ejemplo, si adems desesemos que la contrasea tuviera slo caracteres alfanumricos (nmeros y letras), podramos haber utilizado tambin la funcin PHP ctype_alnum(), que recibe un string y devuelve TRUE si slo encontr nmeros y letras en esa cadena y FALSE si encontr otro tipo de caracteres. Para probar esta funcin hemos hecho una pgina bien simple, que muestra un formulario con un campo password y recibe ese campo para validarlo, mostrando el resultado de la validacin y el posible error que se haya encontrado.
<body> <?
function validar_clave($clave,&$error_clave){ if(strlen($clave) < 6){ $error_clave = "La clave debe tener al menos 6 caracteres"; return false; } if(strlen($clave) > 16){ $error_clave = "La clave no puede tener ms de 16 caracteres"; return false; } if (!preg_match('`[a-z]`',$clave)){ $error_clave = "La clave debe tener al menos una letra minscula"; return false; } if (!preg_match('`[A-Z]`',$clave)){ $error_clave = "La clave debe tener al menos una letra mayscula"; return false; } if (!preg_match('`[0-9]`',$clave)){ $error_clave = "La clave debe tener al menos un caracter numrico"; return false; } $error_clave = ""; return true; }
if ($_POST){ $error_encontrado=""; if (validar_clave($_POST["clave"], $error_encontrado)){ echo "PASSWORD VLIDO"; }else{ echo "PASSWORD NO VLIDO: " . $error_encontrado; } }
Escribe una clave: <input type=password name="clave"> <input type="submit" value="Enviar"> </form>
</body> </html>