Hallo,
nach und nach treibt mich ldap dem Wahn etwas näher.
ich versuche gerade den folgenden Code, der mir hier im Forum zur Verfügung gestellt wurde genau zu verstehen.
<?php
$ldap_server = "ldaps://<UrlDesLdapServers>/";
$ldap_basedn = "ou=schools,dc=linuxmuster,dc=lan";
$ldap_binduser = 'cn=<BindUser>,ou=Management,ou=GLOBAL,dc=linuxmuster,dc=lan';
$ldap_bindpw = '<BindPassword>';
$username = "<Kuerzel>";
// connect to ldap_server
if ($ldap_connection=@ldap_connect($ldap_server)) {
// bind to ldap connection
if (($ldap_bind=@ldap_bind($ldap_connection, $ldap_binduser, $ldap_bindpw)) == false) {
echo "Cannot bind to '$ldap_server'";
@ldap_close($ldap_connection);
exit();
}
// search for user
else if (($res_id = ldap_search($ldap_connection, $ldap_basedn, "cn=$username")) == false) {
echo "No user found";
@ldap_close($ldap_connection);
exit();
}
else {
$user_entries = ldap_get_entries($ldap_connection, $res_id);
$user_groups = $user_entries[0]["memberof"];
$groups = array();
foreach ($user_groups as $key => $group) {
if ($key !== "count") {
array_push($groups, strtok(substr($group, 3), ','));
}
}
print_r($groups);
@ldap_close($ldap_connection);
}
}
else {
echo "No connection to '$ldap_server'";
}
?>
Ich verstehe nun folgenden Teil nicht
$user_entries = ldap_get_entries($ldap_connection, $res_id);
$user_groups = $user_entries[0]["memberof"];
$groups = array();
foreach ($user_groups as $key => $group) {
if ($key !== "count") {
array_push($groups, strtok(substr($group, 3), ','));
Die erste Zeile kann ich noch nachvollziehen, aber was gescheit dann im zweidimensionalen Array?
Wenn ich bei mir user_entries per print_r ausgebe wird nichts angezeigt.
Ich habe mal members of durch OU=Abteilung ersetzt, da wusste ich wenigstens, dass es belegt ist.
Da wird dann ein array ausgegeben, allerdings totales durcheinander.
Es würde mich freuen, wenn mir jemand erklären könnte, was in diesem codeausschnitt genau passiert. Ich verstehe auch nicht, warum hier anscheinend Strings zerlegt werden mit strtok?
Vielen Dank im Voraus
Milo