IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vérifier qu'un utilisateur a plus de 18 ans


Sujet :

Langage PHP

  1. #21
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    oui je me disais bien aussi
    non t’inquiète je ne suis pas très fort je te l'accorde mais j'utilise quand même le bon format hehe

  2. #22
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 381
    Points : 10 410
    Points
    10 410
    Par défaut
    Je viens d'éditer ma précédente réponse, y'avait effectivement un petit malentendu de ma part

  3. #23
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    EDIT : ah ok, je viens de comprendre que c'est dans ta requête de sélection que tu obtiens le format français.
    exact

  4. #24
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 381
    Points : 10 410
    Points
    10 410
    Par défaut
    Oui ce qui m'a dérouté c'est que tu formatais le résultat au format français dans ta requête de sélection pour ensuite utiliser les fonctions date de php et ça n'était pas logique.

    ...après si tu n'utilises cette date que pour afficher l'année (si tu n'as pas besoin d'exploiter cette date autrement ensuite avec php) tu pourrais faire l'équivalent de ce que tu as fais avec php, directement dans ta requête avec les fonctions dateTime de mysql (je dis pas que ce sera exactement la même syntaxe). Sur l'ensemble du script cela devait être un peu plus performant, mais bon là on est dans le domaine de l'optimisation "ultime" Eventuellement cela peut te faire un bon exercice car on a souvent besoin d'utiliser les fonctions date de mysql pour faire du tri.

  5. #25
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Oui ce qui m'a dérouté c'est que tu formatais le résultat au format français dans ta requête de sélection pour ensuite utiliser les fonctions date de php et ça n'était pas logique.

    ...après si tu n'utilises cette date que pour afficher l'année (si tu n'as pas besoin d'exploiter cette date autrement ensuite avec php) tu pourrais faire l'équivalent de ce que tu as fais avec php, directement dans ta requête avec les fonctions dateTime de mysql (je dis pas que ce sera exactement la même syntaxe). Sur l'ensemble du script cela devait être un peu plus performant, mais bon là on est dans le domaine de l'optimisation "ultime" Eventuellement cela peut te faire un bon exercice car on a souvent besoin d'utiliser les fonctions date de mysql pour faire du tri.
    que pour afficher l'année ? non j'affiche que l'age..

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function age($date_naissance)
    {
        $diff = (new \DateTime())->diff(new \DateTime($date_naissance));
        return $diff->y;
    }
    Pour une date de naissance de 1987-02-28 il affiche à l'écran 28 ans
    Pour une date de naissance de 1987-02-22 il affiche à l'écran 29 ans

    donc parfait.

    par contre je ne vois pas comment optimiser ce code (qui est déjà pas mal compressé)

    pour les exercices sur les dates oulaa t’inquiète pas, j'ai de quoi faire, regarde :
    gerer-l-affichage-d-date-vers-format-plus-confortable-visuellement/


  6. #26
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 381
    Points : 10 410
    Points
    10 410
    Par défaut
    Non ce code ne peut plus être optimisé, enfin je pense pas.

    Ce que je voulais dire c'est que plutôt que de le faire en php tu pourrais certainement le faire dans ta requête de sélection sql (il y a aussi datediff dans les fonctions sql). Mais bon t'embête pas pour ça. Cela aurait de l'intérêt si cela pouvait t'éviter un gros traitement côté php, mais ici ce n'est pas le cas.

  7. #27
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    en une ligne (profite de le possibilité de déréférencer) sur une opération aussi simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function age($date_naissance)
    {
        return (new \DateTime())->diff(new \DateTime($date_naissance))->y;
    }

  8. #28
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2015
    Messages
    518
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2015
    Messages : 518
    Points : 184
    Points
    184
    Par défaut
    Je viens de faire la mise à jour ! eh hop une ligne en moins

  9. #29
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Salut,

    j'opterais pour ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ((new \DateTime())->diff(new \DateTime($_POST['date_naissance']))->format('%y') < 18)
    {
        $errors['date_naissance'] = "Vous devez être majeur pour vous inscrire";    
    }
    pouvez-vous expliquer le code s'il vous plaît ? je veux l'utiliser mais j'ai besoin de le comprendre d'abord ...

  10. #30
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    si la différence entre la date d'aujourd'hui et la date de naissance est strictement inférieure à 18 ans alors message d'alerte.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [MySQL] Vérifier si l'utilisateur existe
    Par wzcocoon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/02/2008, 11h24
  2. vérifier que l'utilisateur entre bien une heure
    Par youp_db dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/11/2006, 11h15
  3. vérifier que l'utilisateur entre bien un nombre
    Par youp_db dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 06/11/2006, 10h10
  4. Réponses: 3
    Dernier message: 12/04/2006, 13h57
  5. [c#] Vérifier une sélection utilisateur
    Par elendila dans le forum ASP.NET
    Réponses: 2
    Dernier message: 28/09/2005, 11h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo