[PHP] Tester un age pour autorisation
Fermé
Profil bloqué
-
8 janv. 2010 à 23:29
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 10 janv. 2010 à 20:32
djflexlive Messages postés 557 Date d'inscription mercredi 26 mars 2008 Statut Membre Dernière intervention 23 avril 2015 - 10 janv. 2010 à 20:32
A voir également:
- [PHP] Tester un age pour autorisation
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester son pc - Guide
- Easy php - Télécharger - Divers Web & Internet
- Tester composant pc - Guide
- Vous avez besoin d'une autorisation de la part de administrateurs pour modifier ce dossier - Guide
26 réponses
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
8 janv. 2010 à 23:43
8 janv. 2010 à 23:43
je pense que t'a pas bien mi les crochet :
}
if($month_val >= 12)}
{
header("Location: error.php");
}
if($day_val >= 31)}
{
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
je suis pas sur mais essay
}
if($month_val >= 12)}
{
header("Location: error.php");
}
if($day_val >= 31)}
{
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
je suis pas sur mais essay
non, ce n'est pas cela, les } a la fin des if ne correspondent a rien. il ferme quelque chose qui est deja fermer.
et la, seul le year est pris en compte.
et la, seul le year est pris en compte.
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 00:07
9 janv. 2010 à 00:07
essay :
if($year_val >= 18) {
header("Location: error.php");
}
else($month_val >= 12) {
header("Location: error.php");
}
else($day_val >= 31) {
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
if($year_val >= 18) {
header("Location: error.php");
}
else($month_val >= 12) {
header("Location: error.php");
}
else($day_val >= 31) {
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 00:08
9 janv. 2010 à 00:08
je croi me souvenir avoir eu un bug avec les if et else
je croi que plusieurs if ne se suivent pas...
je croi que plusieurs if ne se suivent pas...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 00:10
9 janv. 2010 à 00:10
en faite un di pas :
si
si
si
mais:
si
et si
et si
et je croi que else sert a ça
si
si
si
mais:
si
et si
et si
et je croi que else sert a ça
non plus, avec les if, ca me donne d'abord un message d'erreur pour le symbole { puis une fois retirer, il luyi faut.
quand au elseif il ne fonctionne pas plus.
quand au elseif il ne fonctionne pas plus.
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 00:14
9 janv. 2010 à 00:14
ahhh
fo encore plus d'inspiration
et oui la programation c'est comme ça et pas autrement lol :-)
fo encore plus d'inspiration
et oui la programation c'est comme ça et pas autrement lol :-)
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 00:15
9 janv. 2010 à 00:15
attend demain je pensse qu'il y aura plus de monde
mais tu aurai du mettre dan programation mais pas dans webmastering
mais tu aurai du mettre dan programation mais pas dans webmastering
Essaies ça :
<?php
if(isset($_REQUEST['bmonth'])) // vérifie si $_REQUEST['bmonth'] existe
{
$month = $_REQUEST['bmonth'];
$day = $_REQUEST['day'];
$year = $_REQUEST['year'];
$this_day = date(d);
$this_month = date(m);
$this_year = date(Y);
$day_val = $this_day - $day;
$month_val = $this_month - $month;
$year_val = $this_year - $year;
if($year_val >= 18 || $month_val >= 12 || $day_val >= 31) {
header("Location: error.php");
}else {
header("Location: acceptez.html");
}
}
?>
<?php
if(isset($_REQUEST['bmonth'])) // vérifie si $_REQUEST['bmonth'] existe
{
$month = $_REQUEST['bmonth'];
$day = $_REQUEST['day'];
$year = $_REQUEST['year'];
$this_day = date(d);
$this_month = date(m);
$this_year = date(Y);
$day_val = $this_day - $day;
$month_val = $this_month - $month;
$year_val = $this_year - $year;
if($year_val >= 18 || $month_val >= 12 || $day_val >= 31) {
header("Location: error.php");
}else {
header("Location: acceptez.html");
}
}
?>
non marche pas plus, il ne verifie que l'année et pas si on a eu son anniversaire la veille. et en plus, il prend a l'envers, quand on a plus de 18 on est ejecter quand on a moins on passe :p
avec ce code, les mineur passe et les majeur sont refuser:
avec celui ci, ont est refuser a tout les coup.
Il n'y a que les fleche du superieur/inferieur qui ont changer et plus rien ne vas.
Connaissez vous un script qui fonctionne pour cela?
Sinon on a bien un moyen mais barbare et peu propre: mettre le frum dans une frame et tous verouillez; avec une inscription obligatoire mais moins propre en code pour les robots.
avec ce code, les mineur passe et les majeur sont refuser:
<?php if(isset($_REQUEST['bmonth'])) // vérifie si $_REQUEST['bmonth'] existe { $month = $_REQUEST['bmonth']; $day = $_REQUEST['day']; $year = $_REQUEST['year']; $this_day = date(d); $this_month = date(m); $this_year = date(Y); $day_val = $this_day - $day; $month_val = $this_month - $month; $year_val = $this_year - $year; if($year_val >= 18 || $month_val >= 12 || $day_val >= 31) { header("Location: error.php"); }else { header("Location: acceptez.html"); } } ?>
avec celui ci, ont est refuser a tout les coup.
<?php if(isset($_REQUEST['bmonth'])) // vérifie si $_REQUEST['bmonth'] existe { $month = $_REQUEST['bmonth']; $day = $_REQUEST['day']; $year = $_REQUEST['year']; $this_day = date(d); $this_month = date(m); $this_year = date(Y); $day_val = $this_day - $day; $month_val = $this_month - $month; $year_val = $this_year - $year; if($year_val <= 18 || $month_val <= 12 || $day_val <= 31) { header("Location: error.php"); }else { header("Location: acceptez.html"); } } ?>
Il n'y a que les fleche du superieur/inferieur qui ont changer et plus rien ne vas.
Connaissez vous un script qui fonctionne pour cela?
Sinon on a bien un moyen mais barbare et peu propre: mettre le frum dans une frame et tous verouillez; avec une inscription obligatoire mais moins propre en code pour les robots.
Utilisateur anonyme
9 janv. 2010 à 08:29
9 janv. 2010 à 08:29
ceci devrai fonctionner:
if(isset($_REQUEST['bmonth'])) // vérifie si $_REQUEST['bmonth'] existe { $month = $_REQUEST['bmonth']; $day = $_REQUEST['day']; $year = $_REQUEST['year']; $valeur_mini_18ans = mktime(0, 0, 0, 1, 1, 1988) $timestamp_naissance_membre = mktime(0, 0, 0, $month, $day, $year) if($valeur_mini_18ans <= time() - $timestamp_naissance_membre){ header("Location: error.php"); }else { header("Location: acceptez.html"); } }
non plus. ca ne verifie que l'année et inverse encore les autorisation (ca c'est pas grave, suffit de changer les location).
mais pour le moment, on est obliger d'avoir 19 ans pour rentrer uniquement avec l'année ce sui ne vas pas tres bien.
mais pour le moment, on est obliger d'avoir 19 ans pour rentrer uniquement avec l'année ce sui ne vas pas tres bien.
Utilisateur anonyme
9 janv. 2010 à 09:04
9 janv. 2010 à 09:04
Oui je me suis planter sur la condition if :/
Mais tu me dis que ça fonctionne correctement mais seulement à partir de 19 ans mini c'est ça ?
Car si c'est ça le problème modifie:
Ha je viens de voir que j'ai oublié les ';'
if($valeur_mini_18ans >= time() - $timestamp_naissance_membre)
Mais tu me dis que ça fonctionne correctement mais seulement à partir de 19 ans mini c'est ça ?
Car si c'est ça le problème modifie:
$valeur_mini_18ans = mktime(0, 0, 0, 1, 1, 1987) ;
Ha je viens de voir que j'ai oublié les ';'
$valeur_mini_18ans = mktime(0, 0, 0, 1, 1, 1988); $timestamp_naissance_membre = mktime(0, 0, 0, $month, $day, $year);
je viens de tester. ca fonctionne toujours uniquement sur l'annee.
ce qui ne permet pas de verouiller ceux qui auront leur aniversaire demain et de laisser passer ceux qui ont eu leur aniversaire hier.et la, ca oblige a changer tous les jour les valeurs de
sinon, comme j'ai modifier le coppa du forum, est ce que ce serait possible de repiquer le code:
sur le forum, cela donne a l'inscription l'obligation de dire si on est ne avant tel date ou apres tel date, ce qui permet un choix. (c'est pas ce que je veux car on dois garder l'age donner par les utilisateurs afin de pouvoir les resortir si necessaire.
Enfin si on y arrive, aps, je ferait la methode bourrin mais elle est moins propre car utilisant des frames et un verouillage complet du forum.
ce qui ne permet pas de verouiller ceux qui auront leur aniversaire demain et de laisser passer ceux qui ont eu leur aniversaire hier.et la, ca oblige a changer tous les jour les valeurs de
$valeur_mini_18ans = mktime(0, 0, 0, 1, 1, 1987) ;non?
sinon, comme j'ai modifier le coppa du forum, est ce que ce serait possible de repiquer le code:
$coppa_birthday = $user->format_date(mktime($now['hours'] + $user->data['user_dst'], $now['minutes'], $now['seconds'], $now['mon'], $now['mday'] - 1, $now['year'] - 18), $user->lang['DATE_FORMAT']);
sur le forum, cela donne a l'inscription l'obligation de dire si on est ne avant tel date ou apres tel date, ce qui permet un choix. (c'est pas ce que je veux car on dois garder l'age donner par les utilisateurs afin de pouvoir les resortir si necessaire.
Enfin si on y arrive, aps, je ferait la methode bourrin mais elle est moins propre car utilisant des frames et un verouillage complet du forum.
Utilisateur anonyme
9 janv. 2010 à 10:36
9 janv. 2010 à 10:36
Voila normalement tu dois me dire "Super" :) avec ceci :
<?php $valeur_mini_18ans = mktime(0, 0, 0, 1, 1, 1988) ; $timestamp_naissance_membre = mktime(0, 0, 0, $month, $day, $year); if($valeur_mini_18ans <= time() - $timestamp_naissance_membre) { echo '<script language="Javascript"> <!-- document.location.replace("error.php"); // --> </script>'; } ?>
ok, heu ben merci et pas merci en meme temps :p
je sais que tu te casse la tete avec ce trucs :p mais voila, il suffit de rentrer l'annee pour que cela passe, il manque une verifiaction pour ceux qui sont ne la veille et ceux qui sont ne le lendemain.
a moins que tu trouve une idée qui laisse passer ceux qui ont 18 ans revolue depuis hier mais qui bloque ceux sui ont tous jeut ou vont avoir 18 ans, laisse tombern je vais bidouiller un truc qui vas pouvoir bloquer un minimum.
sinon avec le script de coppa que j'ai mis plus haut, il a moyen de faire quelque chose?
(si tu veux le voir a l'oeuvre, vas sur https://www.000webhost.com/migrate?static=true et met une date genre 1986 pour passer. (c'est ton script qui tourne) et fait enregistrer)
je sais que tu te casse la tete avec ce trucs :p mais voila, il suffit de rentrer l'annee pour que cela passe, il manque une verifiaction pour ceux qui sont ne la veille et ceux qui sont ne le lendemain.
a moins que tu trouve une idée qui laisse passer ceux qui ont 18 ans revolue depuis hier mais qui bloque ceux sui ont tous jeut ou vont avoir 18 ans, laisse tombern je vais bidouiller un truc qui vas pouvoir bloquer un minimum.
sinon avec le script de coppa que j'ai mis plus haut, il a moyen de faire quelque chose?
(si tu veux le voir a l'oeuvre, vas sur https://www.000webhost.com/migrate?static=true et met une date genre 1986 pour passer. (c'est ton script qui tourne) et fait enregistrer)
nico.v.44
Messages postés
337
Date d'inscription
dimanche 11 mai 2008
Statut
Membre
Dernière intervention
30 avril 2012
15
9 janv. 2010 à 19:27
9 janv. 2010 à 19:27
oué je pense en en revien toujours au meme a un moment : tout essayer meme le plus absurde :)
djflexlive
Messages postés
557
Date d'inscription
mercredi 26 mars 2008
Statut
Membre
Dernière intervention
23 avril 2015
95
10 janv. 2010 à 01:20
10 janv. 2010 à 01:20
Essayes avec ceci :
<?php function calcul_age($birthday) { list($annee, $mois, $jour) = split('[-.]', $birthday); $today['mois'] = date('n'); $today['jour'] = date('j'); $today['annee'] = date('Y'); $annees = $today['annee'] - $annee; if ($today['mois'] <= $mois) { if ($mois == $today['mois']) { if ($jour > $today['jour']) $annees--; } else $annees--; } return $annees; } // Te permets de faire divers essais $date_anniversaire = '11/01/1992'; $date_anniversaire = explode('/',$date_anniversaire); if ( !checkdate( $date_anniversaire[1], $date_anniversaire[0], $date_anniversaire[2] ) ) { $erreur .= '- Votre date de naissance n\'est pas valide.<br/>'; } else { $date_anniversaire = $date_anniversaire[2].'-'.$date_anniversaire[1].'-'.$date_anniversaire[0]; } echo calcul_age($date_anniversaire); ?>
Petit Raptor
Messages postés
187
Date d'inscription
mardi 22 décembre 2009
Statut
Membre
Dernière intervention
16 mars 2010
1
10 janv. 2010 à 08:38
10 janv. 2010 à 08:38
Pourquoi pas ne pas tester le simple code de départ mais avec les bon mots ?
En effet, plusieurs if d'affilé ne marcheront pas vu que ça se traduirais comme ceci:
Si ...
Si ...
Si ...
Sinon ...
Remplaçons par le bon mot:
Si ...
Sinon Si ...
Sinon Si ...
Sinon ...
Comment dire à php "Sinon Si" ?
Tout simplement: "elseif"
Ce qui donnerai donc:
<?php
$month = $_REQUEST['bmonth'];
$day = $_REQUEST['day'];
$year = $_REQUEST['year'];
$this_day = date(d);
$this_month = date(m);
$this_year = date(Y);
$day_val = $this_day - $day;
$month_val = $this_month - $month;
$year_val = $this_year - $year;
if($year_val >= 18) {
header("Location: error.php");
}
elseif($month_val >= 12) {
header("Location: error.php");
}
elseif($day_val >= 31) {
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
?>
Je n'ai même pas chercher à voir si ça marchera par rapport aux conditions qui sont dedans.
Mais si tes conditions sont logiques et bonnes, alors ce code très simple marchera.
En effet, plusieurs if d'affilé ne marcheront pas vu que ça se traduirais comme ceci:
Si ...
Si ...
Si ...
Sinon ...
Remplaçons par le bon mot:
Si ...
Sinon Si ...
Sinon Si ...
Sinon ...
Comment dire à php "Sinon Si" ?
Tout simplement: "elseif"
Ce qui donnerai donc:
<?php
$month = $_REQUEST['bmonth'];
$day = $_REQUEST['day'];
$year = $_REQUEST['year'];
$this_day = date(d);
$this_month = date(m);
$this_year = date(Y);
$day_val = $this_day - $day;
$month_val = $this_month - $month;
$year_val = $this_year - $year;
if($year_val >= 18) {
header("Location: error.php");
}
elseif($month_val >= 12) {
header("Location: error.php");
}
elseif($day_val >= 31) {
header("Location: error.php");
}
else {
header("Location: acceptez.html");
}
?>
Je n'ai même pas chercher à voir si ça marchera par rapport aux conditions qui sont dedans.
Mais si tes conditions sont logiques et bonnes, alors ce code très simple marchera.