Page 1 sur 1

Requetes LDAP par Php

Posté : 19 mars 2012, 10:17
par luc.pixel
Bonjour à tous,
je travaille actuellement sur un sujet qui consiste à aller voir un id dans LDAP et voir dans un .csv si l'id en question existe bien.
Je me heurte à un problème parceque ça ne fonctionne pas et en plus quand les id sont identiques ça me marque que ça ne marche pas ...

Je vous transmet code et résultat :

.php
<CODE>
<?php

require_once ("../INCLUDES/commun.php");
set_time_limit(600);
$file = fopen ("../FILES/fichier.csv","r");
$ds = gf_ldap_connexion();
$ou = AGENT;
$r = gf_ldap_bind_read($ds);
$filtre = array("uid");
$cherche = "Category=worker";
$sr = ldap_search($ds,$ou,$cherche,$filtre);
$info = ldap_get_entries($ds, $sr);
$nb = $info["count"];
if ($TabFich = file("../FILES/fichier.csv")) {
for($i = 0; $i < count($TabFich); $i++){
}
for ($num = 0; $num < $nb; $num++)
{
$id = $info[$num]['uid'][0];
$trouve = False;
echo "-".$id."-";
while (!feof($file)) {
$ligne = fgets($file, 4096);
$l = explode(";",$ligne);
$l[0] = str_replace ("(","",$l[0]);
$l[0] = str_replace (")","",$l[0]);
if($id == $l[0]){
$trouve = True;
}
}
if ($trouve == True) {
echo " Correspondance trouvée ! -- csv : ".$l[0]." <BR/>";
}
else {
echo " Correspondance NON trouvée ! -- csv : ".$l[0]." <BR/>";
}
$num++;
}
}
else {
echo "Le fichier ne peut être lu...<br>";
}
ldap_free_result( $sr );
ldap_close($ds);
?>
</CODE>

<RESULTAT>
-A- Correspondance NON trouvée ! -- csv : C
-B- Correspondance NON trouvée ! -- csv : C
-C- Correspondance NON trouvée ! -- csv : C
-D- Correspondance NON trouvée ! -- csv : C
-E- Correspondance NON trouvée ! -- csv : C
</RESULTAT>

Merci d'avance pour votre aide !

Pixel.

Re: Requetes LDAP par Php

Posté : 19 mars 2012, 22:20
par Mazarini
Il y a un problème d'algo dans ton script. Le 'open' et le 'fget' ne servent à rien surtout que tu ne passe dans le while que dans le premier 'for'

Re: Requetes LDAP par Php

Posté : 20 mars 2012, 16:58
par luc.pixel
Tout simplement :

<?php
require_once ("../INCLUDES/commun.php");
set_time_limit(600);
$file = fopen ("../FILES/unique.csv","r");
$TabUID = array();
$cpt = 0;
while (!feof($file)) {
$ligne = fgets($file, 4096);
$l = explode(";",$ligne);
$l[0] = str_replace ("(","",$l[0]);
$l[0] = str_replace (")","",$l[0]);
$TabUID[] = $l[0];
$cpt = $cpt+1;
}
$ds = gf_ldap_connexion();
$ou = BRANCHE;
$r = gf_ldap_bind_read($ds);
$filtre = array("uid","attribut");
$cherche = "Category=I";
$sr = ldap_search($ds,$ou,$cherche,$filtre);
$info = ldap_get_entries($ds, $sr);
$nb = $info["count"];

for ($i=0; $i<$nb; $i++){
$uid = $info[$i]["uid"][0];
if(isset($info[$i]["attribut"][0])){
$att = $info[$i]["attribut"][0];
}
else {
$att= "";
}
if(in_array($uid, $TabUID)) {
echo $uid.";"."True".";".utf8_decode($att)."<BR/>";
}
else{
echo $uid.";"."False".";".utf8_decode($att)."<BR/>";
}
}
ldap_free_result( $sr );
ldap_close($ds);
?>

Merci à toi !