J'ai un formulaire avec l'entrée suivante d'un nom d'utilisateur:

<div class="form-group">
<label class="control-label col-sm-2" for="affuser">Affected User: <font color="red">*</font></label>
<div class="col-sm-10"> 
  <input type="affuser" class="form-control" name="affuser" id="affuser" placeholder="Username" value="" required="required">
</div>

Je voudrais maintenant vérifier si cet utilisateur est également dans un annuaire actif de mon entreprise. Ainsi, lorsqu'un nom d'utilisateur est écrit dans le champ de saisie et que le curseur sort du champ (par exemple), il devrait y avoir une vérification si cet utilisateur est dans l'AD ou non. Si tel est le cas, les bordures doivent devenir vertes, sinon les bordures du champ de saisie doivent devenir rouges. Et s'il y a une "mauvaise" entrée, le champ ne devrait pas non plus pouvoir être soumis.

Comment puis-je résoudre ce problème le mieux possible?

0
Tim Kühn 21 avril 2017 à 17:53

3 réponses

Meilleure réponse

Okaay, pas de bébé.

Tout d'abord, vous devez rechercher l'utilisateur dans l'AD, vous devrez effectuer un appel ajax à votre back-end lorsque le curseur sort du champ à l'aide d'un événement javascript , lorsque vous terminez votre appel ajax, vous vérifiez le résultat renvoyé par le back-end et changez la bordure de votre champ à l'aide de la fonction javascript style , puis , vous allez ajouter un événement à votre formulaire pour vérifier tous les champs, avant de l'envoyer.

Comme vous n'avez pas essayé de le faire, je viens de vous donner les sujets en surbrillance que vous devez rechercher.

1
Lucas Mendes 21 avril 2017 à 14:59

En général, vous devez appeler une API fournie par Active Directory. La meilleure chose serait d'utiliser un SDK PHP prêt à l'emploi pour l'appeler via PHP.

Vous pouvez par exemple commander adLDAP (http://adldap.sourceforge.net/).

(La dernière version stable est disponible ici: https://github.com/adldap/adLDAP /tree/v4.0.4)

Assurez-vous également que LDAP est même activé / installé en PHP. Consultez cet article: http://php.net/manual/en/ldap.installation .php

Pas:

  • Envoyez le nom d'utilisateur (via un formulaire html ou via Ajax comme suggéré) à votre serveur Web
  • transmettre le nom d'utilisateur via la fonction SDK respective à l'API LDAP
  • vérifier le résultat renvoyé par l'API en PHP
  • répondre au navigateur en fonction du résultat renvoyé par la vérification de l'API
1
Benjamin 21 avril 2017 à 15:25

Je suis désolé, mais vous ne pouvez pas résoudre ce problème uniquement avec PHP. PHP s'exécute sur le serveur et comme vous souhaitez probablement intégrer cet extrait dans une page Web, vous ne pouvez pas exécuter PHP directement dans la page. Vous devrez utiliser JavaScript avec AJAX pour demander à un site PHP sur le serveur de vérifier si l'utilisateur existe ou non.

Cela signifie que vous auriez besoin d'un code sur la page Web, qui attend que l'entrée perde le focus. C'est facilement possible avec le focusout de JQuery.

Après cela, vous devrez appeler le serveur. Facilement possible avec le ajax de JQuery.

Vous devez créer un nouveau document PHP vérifiant si l'utilisateur est dans le répertoire actif ou non, qui peut être appelé par l'AJAX-Call. Pour vérifier que vous pouvez utiliser LDAP.

1
Luca Schimweg 21 avril 2017 à 15:02