Se supone que no es un error, pero deberias usar un foreach para poder sacar los resultados de esta manera:
Código PHP:
Ver original//variable flag para saber si encuentro datos
$search = false;
foreach($result as $value){
$search = $value;
break;
}
}
//si tengo datos los saco a mis variables
if($search){
if($entries["count"] > 0){
$oficina = $entries[0]['physicaldeliveryofficename'][0];
$entradas = $entries[0]['logoncount'][0];
$cn = $entries[0]['cn'][0];
return;
}else{
$oficina = 'Sin datos';
$entradas = 'Sin datos';
$cn = 'Sin datos';
return;
}
}else{
$oficina = 'No encontrado';
$entradas = 'No encontrado';
$cn = 'No encontrado';
return;
}
Te dejo mi funcion completa en caso que sirva de algo:
Código PHP:
Ver original if(!$login){
$arr['failure'] = 'true';
return $arr;
}else{
//Con este formato puedes buscar en mas de un directorio en el AD
$dn[]="OU=OtroDirectorio,DC=dominio,DC=cl";
$dn[]="OU=UnDirectorio,DC=dominio,DC=cl";
$id[] = $ldap;
$id[] = $ldap;
$attributes = array("cn", "company","accountExpires","logonCount","physicalDeliveryOfficeName","mail"); $filter = "(&(objectCategory=Person)(userPrincipalName=$username))";
$search = false;
foreach($result as $value){
$search = $value;
break;
}
}
if($search){
if($entries["count"] > 0){
$_SESSION['USER_OFI'] = $entries[0]['physicaldeliveryofficename'][0];
$_SESSION['USER_MBO'] = $entries[0]['logoncount'][0];
$_SESSION['USER_CNX'] = $entries[0]['cn'][0];
return;
}else{
$_SESSION['USER_OFI'] = '';
$_SESSION['USER_MBO'] = '';
$_SESSION['USER_CNX'] = '';
return;
}
}else{
$_SESSION['USER_OFI'] = '';
$_SESSION['USER_MBO'] = '';
$_SESSION['USER_CNX'] = '';
return;
}
$arr['success'] = 'true';
return $arr;
}
}else{
$arr['failure'] = 'true';
return $arr;
}
Suerte!