Soyez le premier à donner votre avis sur cette source.
Snippet vu 48 184 fois - Téléchargée 31 fois
<?php // informations de connexions $ldap_host = "localhost"; //inserer ici l'addresse du serveur LDAP $base_dn = "DC=GUESSANT,DC=ORG"; $user = "cn=".$_POST['user']; // on traite les information recoltées $password = $_POST['pass']; $admin="admin"; // indiquez ici le groupe auquels appartient les admin et les membres. dans mon exemple, j'ai un o=admin et un o=membres. $membres="membres"; $connect = ldap_connect($ldap_host) // connexion en anonymous or exit(">>Connexion au serveur LDAP echoué<<"); ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3); // on passe le LDAP en version 3, necessaire pour travailler avec le AD ldap_set_option($connect, LDAP_OPT_REFERRALS, 0); $read = ldap_search($connect,$base_dn, $user) or exit(">>erreur lors de la recherche<<"); $info = ldap_get_entries($connect, $read); if ( preg_match("!".$admin."!",$info[0]["dn"] ) ) // si le user trouvé est admin : { $bind = ldap_bind($connect,$info[0]["dn"],$password); if ( $bind == FALSE ) // si le BIND est FALSE, le mot de passe est erronée // echo( " il est admin mais faux mdp"); header("location: auth_ldap.php?result='0'"); elseif ( $bind == TRUE ) // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... ) { header("location: index.php"); } } elseif ( preg_match("!".$membres."!",$info[0]["dn"]) ) // si le user trouvé est membres : { $bind = ldap_bind($connect,$info[0]["dn"],$password); if ( $bind == FALSE ) // si le BIND est FALSE, le mot de passe est erronée // echo( " il est membre mais faux mdp"); header("location: auth_ldap.php?result='0'"); elseif ( $bind == TRUE ) // on peut ajouter d'autre traitement si l'identification est ok ( ex : $_SESSION['user'] = ... ) { header("location: index.php"); } } else // le user n'a pas pu être trouvé { // echo "nom de user invalide"; header("location: auth_ldap.php?result='1'"); } ldap_close($connect); ?>
15 juin 2010 à 15:50
2 juin 2009 à 15:57
2 juin 2009 à 14:56
Je suis en stage, et j'obtiens la même erreur que vous:
Warning: Wrong parameter count for ldap_search() in C:\wamp\www\debut\traitement.php on line 16
>>erreur lors de la recherche<<
Quelqu'un a une solution ??
1 juin 2009 à 16:37
1 juin 2009 à 12:41
que faut il faire alors? un Bind authentifié avant de lancher la recherche?
Car dans le code ci dessous il recherche avant de faire ldap_bind;
De plus le ldap_connect ne prend pas de parametre d'authentification
Alors quelqu'un aurait il une idee pour y parvenir?
merci
ps: les mot de passe dans active D sont cryptés alors comment les tester avec celui envoyé par formulaire?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.