Thema: Benutzer nach PHP LDAP Abfrage sortieren


Seite durchsuchen:
Home


zurück zur Übersicht

Diskussionsgruppe: PHP

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:

<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>


MFG
Sascha

Von: Bruno_Bayano Datum: 27.04.2007, 09:39

alle Antworten zu dieser Frage




Antwort 1 von Supermax vom 27.04.2007, 11:04
Schau dir mal die Array-Sortierungsfunktionen von PHP an, insbesondere uasort() (Sortierung mit einer benutzerdefinierten Sortierungsfunktion).

Antwort 2 von Bruno_Bayano vom 03.05.2007, 11:57
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:

<?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 vom 04.05.2007, 11:00
ich hab selbst die Lösung gefunden, aber trotzdem danke.

Die Lösung ist:

foreach($arr As $name){
echo '<option>'.$name.'</option>';
}


Antworten der Gruppe: PHP
www.supportnet.de







Office 365 stellt vertraute Microsoft Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen.