Danke für die Rückmeldung habe es aber gelöst ^^
So ist attnames definiert
$attnames = array("ou","fullname","mail","telephonenumber","facsimiletelephonenumb er");
So ist entires definiert
$entries = ldap_get_entries($ds, $r);
Ich habe die kompletten Nutzerdaten doppelt bekommen
Es sollte von Benutzern in LDAP Tabellarisch eine Liste dargestellt werden mit den Spalten: "Abteilung, Name, E-Mail, Telefon und Fax"
Das Problem war das weiterzählen vom Array oder wie man es sagt.
Da jeweils eines von den: "$attnames" ein Array ist habe ich vergessen das es mind. mehr als 1 mal dazu zählen muss.
PHP-Code:
$entries = ldap_get_entries($ds, $r);
echo "Daten für: ".$entries["count"]." Objekte erhalten.<p>";
echo "<table border='5'><tr><th>Abteilung</th><th>Name</th><th>E-Mail</th><th>Telefon</th><th>Fax</th></tr>";
for ($i=0; $i<$entries["count"];) {
// Any multi-valued object will return like the following:
// $entries[0]['mail']['count']=2
// $entries[0]['mail'][0]='a@b.com'
// $entries[0]['mail'][1]='b@b.com'
foreach($attnames as $attname){
if(is_array($entries[$i][$attname])){
for($j=0;$j<$entries[$i][$attname]["count"];){
echo "<tr><td>".$entries[$i]['ou'][$j] ."</td><td>".$entries[$i]['fullname'][$j] ."</td><td>".$entries[$i]['mail'][$j] ."</td><td>".$entries[$i]['telephonenumber'][$j] ."</td><td>".$entries[$i]['facsimiletelephonenumber'][$j] ."</td></tr>";
// echo "<table><tr>".$attname."</tr> <td>".$entries[$i][$attname][$j] ."</td></table>";
if( empty ($entries[$i]['fullname'][$j]))
{
$j++;
$i++;
if( empty ($entries[$i]['mail'][$j]))
{
$j++;
$i++;
if( empty ($entries[$i]['telephonenumber'][$j]))
{
$j++;
$i++;
if( empty ($entries[$i]['facsimiletelephonenumber'][$j]))
{
$j++;
$i++;
if( empty ($entries[$i]['ou'][$j]))
{
$j++;
$i++;
}else{$i++;$j++;}
}else{$i++;$j++;}
}else{$i++;$j++;}
}else{$i++;$j++;}
}else{$i++;$j++;}
}
}else{
// echo $attname." Eintrag ist: ".$entries[$i][$attname]."<br>";
}
}