Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Benutzer nach PHP LDAP Abfrage sortieren
Frage
Hallo,
ich habe ein kleines Problem, ich habe über ein PHP-Script alle Benutzer aus dem LDAP abgefragt und in ein SELECT-Feld gebpackt, das Problem ist, das die einträge nicht sortiert sind. Kann mir jemand helfen?
Das eintragen in das SELECT-Feld sieht so aus:
[code]<select name="Benutzer" size="1">
<?php
$anzahl = ldap_count_entries($connectid,$search);
for ($i=0; $i<$anzahl; $i++) {
$name = $result[$i]["cn"][0];
echo '<option>'.$name.'</option>';
}
?>
</select>[/code]
MFG
Sascha
Antwort 1 von Supermax
Schau dir mal die Array-Sortierungsfunktionen von PHP an, insbesondere uasort() (Sortierung mit einer benutzerdefinierten Sortierungsfunktion).
Antwort 2 von Bruno_Bayano
Danke, das hat mir schonmal ein bisschen weiter geholfen.
Jetzt habe ich allerdings noch ein Problem, und zwar bekomme ich den sortierten Array nicht vernünftig ausgegeben, ich möchte alle Datensätze in eine Liste schreiben, allerdings schreibt er die dann nicht sortiert da rein.
Hier mal mein Quellcode:
Hat jemand von euch eine Lösung?
Jetzt habe ich allerdings noch ein Problem, und zwar bekomme ich den sortierten Array nicht vernünftig ausgegeben, ich möchte alle Datensätze in eine Liste schreiben, allerdings schreibt er die dann nicht sortiert da rein.
Hier mal mein Quellcode:
<?php
$basedn = "CN=Users,DC=domain,DC=loc";
$server = "servername";
$username = "user";
$password = "password";
$ldap_port = "389";
$filter = "(&(|(objectClass=user))(objectCategory=person)(cn=*))";
?>
<?php
$connectid = @ldap_connect($server)or die("Keine Verbindung zum LDAP server möglich.");
?>
<?php
$binding = @ldap_bind($connectid,$username,$password) or die("Fehler beim Anmelden des Benutzers.");
?>
<?php
// AD auslesen
$search = @ldap_search($connectid,$basedn,$filter);
$result = ldap_get_entries($connectid,$search);
?>
<?php
$anzahl = ldap_count_entries($connectid,$search);
$arr = array();
for ($i=0; $i<$anzahl; $i++) {
$name = $result[$i]["cn"][0];
array_push( $arr,$name );
}
asort($arr);
?>
<select name="user" size="1">
<?php
for ($j=0; $j<$anzahl; $j++) {
echo '<option>'.$arr[$j].'</option>';
}
?>
</select>
Hat jemand von euch eine Lösung?
Antwort 3 von Bruno_Bayano
ich hab selbst die Lösung gefunden, aber trotzdem danke.
Die Lösung ist:
Die Lösung ist:
foreach($arr As $name){
echo '<option>'.$name.'</option>';
}
