Restriction d'age lors d'inscription avec formulaire - PHP

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
Voilà, j'explique mon blocage, je voudrai faire une restriction d'age ( en php ) à l'inscription en suivant les demandes de mon formulaire, dans mon formulaire j'ai une demande d'age de naissance et on va se servir ici de l'année. La restriction serai d'un age minimum d'inscription de 13 ans pour que le formulaire se complète entièrement.
Le petit bug c'est que même en ayant 10 ans on arrive à s'inscrire.

date_default_timezone_set('Europe/Paris');
$annee = htmlspecialchars($_POST['birthday_year']);
$age_actuel = (date('y') - $annee);
if(($age_actuel - '13') <= '0')
{
	"ça continue le formulaire"
}
else
{
	$erreur = "Tu n'as pas l'âge nécessaire pour acquérir un compte !";
}
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

-'13' ? ... - 13 sans quotes ça sera mieux.
date_default_timezone_set('Europe/Paris');
$annee = !empty($_POST['birthday_year']) ? (int)$_POST['birthday_year'] : 0;
$age_actuel = date('y') - $annee;

echo "Annee : " . $annee;
echo "age_actuel : " . $age_actuel;

echo "age_actuel - 13 : " . ($age_actuel - 13);

if(($age_actuel - 13) <= 0) {
 echo "ça continue le formulaire";
} else {
 $erreur = "Tu n'as pas l'âge nécessaire pour acquérir un compte !";
}

Au passage ... htmlspecialchars ne s'utilise QUE pour l'affichage. En aucun cas pour effectuer ensuite des opérations sur la variable ou l'insérer en BDD.
De plus, comme tu attends un nombre (une année...) tu peux le forcer en INT


Cordialement, 
Jordane                                                                 
0
Utilisateur anonyme
 
Même en passant
'13' à 13

ça ne change rien ainsi qu'en passant le
$_POST['birthday_year'] avec (int) ça change rien
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as testé mon code au moins ????
Il t'affiche quoi au juste ?

Tu as regardé ce que contient $_POST['birthday_year'] ?
Tu peux faire un
print_r($_POST);
et nous en afficher le résultat ?
Tu peux nous montrer à quoi ressemble ton formulaire html ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Au passage .. le '0' aussi est à mettre sans les quotes.
0
Utilisateur anonyme
 
Voilà ce que ça me sort : Annee : 2007age_actuel : -1990age_actuel - 13 : -2003ça continue le formulaire

Mon $age_actuel est formater comme ça
date_default_timezone_set('Europe/Paris');
$age_courant = (date('y') - $annee);
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Regarde donc ce que donne ce code :
$currentYear = date('Y');
$currentYear2 = date('y');

echo "<br>currentYear : ".$currentYear;
echo "<br>currentYear2 : ".$currentYear2;
0