Bonjour, Nous avons récemment mi en place un bout de code permettant d'afficher notre annuaire ou d'y faire des recherche. Tout à bien fonctionner quelques jours. Maintenant, sa plante. Les recherches par service fonctionnent mes pas les recherches ou l'affichage général. Nous obtenons le même problème avec différent bout de code.
Avez vous une idée ? Je joins notre au code au cas ou celui-ci soit fautif.
-- L'ERREUR --
Warning: ldap_search() [function.ldap-search]: Search: Operations error in C:\wamp\www\share\related\testdc.php on line 92
Warning: ldap_sort() expects parameter 2 to be resource, boolean given in C:\wamp\www\share\related\testdc.php on line 139
Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in C:\wamp\www\share\related\testdc.php on line 141 Donnees pour entrees:
-- LE CODE --
<form method="post"> <annu>Annuaire de la SIC</annu><br /> <p><st>Rechercher :</st><br /> <input type="text" name="recherche" /> (laisser vide pour une liste complète)</p> <p><st>Dans : </st><br />
<?php $afficher = $_POST['afficher']; $service = $_POST['service']; $titre = $_POST['titre']; $recherche = $_POST['recherche']; $dnsic = "dc=sic, dc=intra"; $filtre = "(|(sn=*$recherche*)(givenname=*$recherche*)(telephonenumber=*$recherche*))"; //filtre de recherche, recherche toutes les entrees dont le nom ou le prenom ou le numero interne contient $recherche $dndep = "ou=$service,$dnsic"; $service2 = $_POST['sousservice']; $service3 = $_POST['sousservice2']; $service4 = $_POST['sousservice3']; $dndep2 = "ou=$service2, $dndep"; $dndep3 = "ou=$service3, $dndep2"; $dndep4 = "ou=$service4, $dndep3";
if($afficher == "ok" { echo '<br />'; echo '<annu>Resultat de la recherche</annu><br />'; $ds=ldap_connect("pollux.sic.intra" // doit être un serveur LDAP valide !
if ($ds) { $r=@ldap_bind($ds,"sic-intra\ldap_php", "mon_password" //@ldap_bind pour une liaison à l'annuaire non anonyme, requiére un compte ayant les droits de se connecter au serveur LDAP
echo 'Recherche des personnes dont le nom, le prenom ou le N° interne contient : '.$recherche.' ...<br />'; echo 'Dans : '.$service.' '.$service2.' '.$service3.' '.$service4.'...<br />';
// Recherche par nom dans tous les services if ($service=="Tous les départements" { if (empty($recherche)){ $sr=ldap_search($ds, $dnsic, "(|(sn=*)(givenname=*))" } else { $sr=ldap_search($ds, $dnsic, $filtre); } }
//recherche dans le premier niveau des services (DAPP,DCL,...) elseif(($service!="Tous les départements"&&($service2=="Tous les services"||($service!="Tous les départements"&&($service2==""){ if (empty($recherche)){ $sr=ldap_search($ds,$dndep, "(|(sn=*)(givenname=*))" } else { $sr=ldap_search($ds,$dndep, $filtre); } }
//recherche dans le 2eme niveau des services (DAPP/Amenagements, DOIL/SSI...) elseif(($service!="Tous les départements"&&($service2!="Tous les services"&&($service2!=""&&($service3=="Tous les services"||($service!="Tous les départements"&&($service2!="Tous les services"&&($service2!=""&&($service3==""){ if (empty($recherche)){ $sr=ldap_search($ds,$dndep2,"(|(sn=*)(givenname=*))" } else{ $sr=ldap_search($ds,$dndep2,$filtre); } }
//recherche dans le 3eme niveau des services (DAPP/Patrimoine/Agences...) elseif(($service!="Tous les départements"&&($service2!="Tous les services"&&($service2!=""&&($service3!="Tous les services"&&($service3!=""&&($service4=="Toutes les agences"||($service!="Tous les départementss"&&($service2!="Tous les services"&&($service2!=""&&($service3!="Tous les services"&&($service3!=""&&($service4==""){ if (empty($recherche)){ $sr=ldap_search($ds,$dndep3,"(|(sn=*)(givenname=*))" } else{ $sr=ldap_search($ds,$dndep3,$filtre); } }
//recherche dans le 4eme niveau dse services (DAPP/Patrimoine/Agences/Agence...) elseif(($service!="Tous les départements"&&($service2!="Tous les services"&&($service2!=""&&($service3!="Tous les services"&&($service3!=""&&($service4!="Toutes les agences"&&($service4!=""){ if (empty($recherche)){ $sr=ldap_search($ds,$dndep4,"(|(sn=*)(givenname=*))" } else{ $sr=ldap_search($ds,$dndep4,$filtre); } } //tri sur le nom ldap_sort($ds, $sr,"sn"