online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Bruno_Bayano vom 27.04.2019, 09:39 Options

Benutzer nach PHP LDAP Abfrage sortieren

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


Antwort schreiben

Antwort 1 von Supermax vom 27.04.2019, 11:04 Options

Schau dir mal die Array-Sortierungsfunktionen von PHP an, insbesondere uasort() (Sortierung mit einer benutzerdefinierten Sortierungsfunktion).

Antwort 2 von Bruno_Bayano vom 03.05.2019, 11:57 Options

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.2019, 11:00 Options

ich hab selbst die Lösung gefunden, aber trotzdem danke.

Die Lösung ist:

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

Ähnliche Themen

ldap-verzeichnis
schneider  22.03.2007 - 498 Hits - 1 Antwort

Viren!? oder was???
Grey-Timber  28.03.2007 - 211 Hits - 2 Antworten

Microsoft ldap verzeichnis
sdiemle  21.10.2007 - 336 Hits - 2 Antworten

ldap verzeichnis-meldung im outloock abschalten wie geht das ?
outloocknutzer  03.11.2007 - 542 Hits - 6 Antworten

bscw und ldap
erdna99  20.04.2008 - 26 Hits -

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026