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

Résolu/Fermé
Utilisateur anonyme - 15 déc. 2017 à 18:22
 Utilisateur anonyme - 15 déc. 2017 à 20:41
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
Modifié le 15 déc. 2017 à 19:55
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
15 déc. 2017 à 19:50
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 déc. 2017 à 19:55
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 déc. 2017 à 19:55
Au passage .. le '0' aussi est à mettre sans les quotes.
0
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 déc. 2017 à 20:05
Regarde donc ce que donne ce code :
$currentYear = date('Y');
$currentYear2 = date('y');

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