Je suis en train de travailler sur un script php qui va réinitialisé le mot de passe active directory d'une personne donnée. Pour ce faire, dans un formulaire la personne inscrira son adresse mail qui sera envoyée à mon script via une variable POST. Tout se passe correctement, toutefois lorsque je demande le reset mdp, rien ne se passe. Voici mon code :
Code : Tout sélectionner
<?php
//parametres de connexion
$email = $_POST["mail"]; //variable email recu par le formulaire
//vrification de l'adresse mail
$usercheck = substr($email, -9);
if (!($usercheck == "@MONDOMAINE.fr"))
{echo "L'adresse mail fournie n'est pas correcte. Elle doit être sous la forme [email protected]";}
$host = "ldap://MONSERVEURAD.MONDOMAINEfr";
$dn = "OU=MONOU, DC=MONDOMAINE,DC=fr";
$user= substr($mail, 0, -9);
//Connection AD
$adConn = ldap_connect($host, 636) or die("La connection a echoue!");
$bind = @ldap_bind($adConn, "[email protected]", "MOTDEPASSEADMIN") or die ("erreur de binding");
//recherche de la personne dans l'active directory
$filter = "(mail=$email)";
if (!($search=@ldap_search($adConn, $dn, $filter)))
die("Recherche impossible");
$info = ldap_get_entries($adConn, $search);
if ($info) {
echo "L'adresse existe bien dans l'active directory"; //juste pour moi le temps de la ralisation du script
//recuperation du DN correspondant au mail
$entry = ldap_first_entry($adConn, $search);
$dnareset = ldap_get_dn($adConn, $entry);
}
echo "<p>Reset du mot de passe : ";
echo $dnareset; //juste pour moi le temps de la ralisation du script
$userdata["userpassword"] = '1234mdp*P';
if(ldap_mod_replace ($adConn, $dnareset, $userdata))
{echo "OK - votre mot de passe a bien été changé"; } else { echo "erreur"; }
?>