quisiera tratar de verificar antes de poder hacer un insert si el usuarios a registrarse es mayor de edad, si es mayor de edad puede registrarse en el sistema, pero si es menor de edad el sistema no lo deje registrarse, ya que es requerido que sea mayor de edad para poder registrarse. pero no logro que funcione, gracias de ante mano
proceso para registrar
Código PHP:
Ver original<!-- proceso para registrar-->
<?php
if(isset($_POST['guardar'])){
if($_POST['pass']!=$_POST['pass2']) {
$errMSG = "¡ Ups Aviso: Las Contraseñas deben coincidir !";
header("refresh:5;registrarse.php");
}else {
$sql = "SELECT cedula FROM usuarios WHERE cedula = :cedula LIMIT 1"; //Creamos la select
$check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
$check->bindParam(':cedula', $_POST['cedula']);//Substituimos las variables de la SELECT
$check->execute();//Ejecutamos la consulta
$contador = $check -> rowCount();//Esta función devuelve el número de resultados que ha devuelto la SELECT
if ($contador > 0) {
$check->closeCursor();
$errMSG = "¡ Ups Aviso: Este usuario ya se encuentra registrado !";
header("refresh:5;registrarse.php"); }
//avisame si el nombre de usuario existe
$sql = "SELECT id_usuarios FROM usuarios WHERE user = :user LIMIT 1";
//Creamos la select
$user_check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
$user_check->bindParam(':user', $_POST['user']);
$user_check->execute();
if($user_check->rowCount() > 0){
$user_check->closeCursor();
$errMSG = "¡ Aviso: El nombre de usuario ya se encuetra registrado !";
header("refresh:5;registrarse.php");
}
$sql= "SELECT edad FROM usuarios WHERE user = :user LIMIT 1"; //Creamos la select
$check = $DB_con->prepare($sql); //Preparamos la SELECT, de ésta manera evitamos SQL Injection
$check->bindParam(':edad', $_POST['edad']);//Substituimos las variables de la SELECT
$check->execute();//Ejecutamos la consulta
$edad = $check->fetchColumn();
$edad=$_POST['edad'];
if ($edad > 18){
$check->closeCursor();
$errMSG = "¡ Aviso: no se permiten registros a menores de edad !";
header("refresh:5;registrarse.php");
}
else
{
$sql=$DB_con->prepare("INSERT INTO usuarios (user,pass,idnivel,cedula,nombres,apellidos,fecha_nac,edad,cod,telefono,direccion,id_seguros,id_servicios,observaciones)
VALUES (:user,:pass,:idnivel,:cedula,:nombres,:apellidos,:fecha_nac,:edad,:cod,:telefono,:direccion,:id_seguros,:id_servicios,:observaciones)");
$sql->bindParam(':user', $_POST['user']);
$sql->bindParam(':pass', $_POST['pass']);
$sql->bindParam(':idnivel', $_POST['idnivel']);
$sql->bindParam(':cedula', $_POST['cedula']);
$sql->bindParam(':nombres', $_POST['nombres']);
$sql->bindParam(':apellidos', $_POST['apellidos']);
$sql->bindParam(':fecha_nac', $_POST['fecha_nac']);
$sql->bindParam(':edad', $_POST['edad']);
$sql->bindParam(':cod', $_POST['cod']);
$sql->bindParam(':telefono', $_POST['telefono']);
$sql->bindParam(':direccion', $_POST['direccion']);
$sql->bindParam(':id_seguros', $_POST['id_seguros']);
$sql->bindParam(':id_servicios', $_POST['id_servicios']);
$sql->bindParam(':observaciones', $_POST['observaciones']);
$sql->execute();
$successMSG ="¡ Bien Hecho: Usuario registrado correctamente !";
header("refresh:5;login.php"); }
}
}
?>
<!-- fin proceso para registrar-->
función para calcular la edad a partir de la fecha de nacimiento
Código Javascript
:
Ver original<script>
function calcAge(dateString) {
var birthday = +new Date(dateString);
return ~~((Date.now() - birthday) / (31557600000));
}
function add_months(datestr, months) {
var new_d = new Date(datestr);
new_d.setMonth(new_d.getMonth() + months);
return new_d;
}
$(document).ready(function(){
$('select').material_select();
$(".button-collapse").sideNav();
$('.modal').modal();
$('.datepicker').pickadate({
selectMonths: true, // Creates a dropdown to control month
selectYears: 10, // Creates a dropdown of 15 years to control year
format: 'yyyy-mm-dd', // formto de fecha
onClose: function() {
$('#edad').val(calcAge($('#fecha_nac').val()));
}
});
});
</script>