Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Benutzer nach PHP LDAP Abfrage sortieren

Frage Entwicklung PHP

Mitglied: Bayano

Bayano (Level 1) - Jetzt verbinden

27.04.2007, aktualisiert 04.05.2007, 9453 Aufrufe, 10 Kommentare

Hallo,

ich habe ein kleines Problem, ich habe über ein PHP-Script alle Benutzer aus dem LDAP abgefragt und in ein SELECT-Feld gepackt, 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
Mitglied: SteinBeiser
27.04.2007 um 10:09 Uhr
Nicht sofort in select reinhauen sonder erst in ein array, dieses sortieren und dann select aufbauen.
Bitte warten ..
Mitglied: Bayano
27.04.2007 um 11:58 Uhr
Danke für den Tipp, kannst du mir vielleicht auch mal ein Code-Beispiel geben? Weil mit Array´s und dem Sortieren kenne ich mich nicht so gut aus. Ich würde nur den Bubblesort kennen, aber der ist bestimmt zu langsam, das sind ca 2000 User.
Bitte warten ..
Mitglied: SteinBeiser
27.04.2007 um 12:09 Uhr
01.
//leeres array anlegen: 
02.
 $arr = array(); 
03.
 
04.
//array füttern: 
05.
array_push( $arr, $entry ); 
06.
  
07.
//array sortieren: 
08.
asort( $arr );
selfPHP und selfHTML sind für sowas ne grosse hilfe.
Bitte warten ..
Mitglied: Bayano
30.04.2007 um 15:14 Uhr
Also das hat jetzt alles bei mir geklappt, mit print_r($array) kan ich auch den Sortieren Array ausgeben. Allerdings wenn ich dein sortieren Array in einer Liste ausgeben will klappt das nicht.

Mein Programmcode sieht so aus:
01.
for ($j=0; $j<$anzahl; $j++)  
02.
03.
  echo "<option>".$array[$j]."</option>";                    
04.
}
Aber so gibt er mir nicht die Sortiete Liste aus, sondern die unsortierte. Kann mir jemand helfen?
Bitte warten ..
Mitglied: Dani
30.04.2007 um 16:35 Uhr
Hi ihr Beide,
ich habe mir erlaubt, eure beiden Quellcodes in ein einen Codebock zustecken. So dass es übersichtlich aussieht und optisch natürlich auch.

Zu deinem Problem:
Poste doch ein bisschen mehr als deine for - Schleife, denn der Fehler muss vorher eingebaut sein.


Gruß
Dani
Bitte warten ..
Mitglied: Bayano
03.05.2007 um 07:53 Uhr
Ok, dann poste ich mal meine Quellcode:

01.
 
02.
 
03.
                  $basedn = "CN=Users,DC=domain,DC=loc"
04.
                  $server = "servername"
05.
                  $username = "user"
06.
                  $password = "password"
07.
                  $ldap_port = "389"
08.
                  $filter = "(&(|(objectClass=user))(objectCategory=person)(cn=*))"
09.
?> 
10.
     
11.
<?php 
12.
                  $connectid = @ldap_connect($server)or die("Keine Verbindung zum LDAP server möglich."); 
13.
?> 
14.
     
15.
<?php 
16.
                  $binding = @ldap_bind($connectid,$username,$password) or die("Fehler beim Anmelden des Benutzers."); 
17.
?> 
18.
     
19.
<?php 
20.
                  // AD auslesen 
21.
                  $search = @ldap_search($connectid,$basedn,$filter); 
22.
                  $result = ldap_get_entries($connectid,$search); 
23.
?> 
24.
 
25.
<?php 
26.
                  $anzahl = ldap_count_entries($connectid,$search); 
27.
                  $arr = array(); 
28.
                  for ($i=0; $i<$anzahl; $i++) { 
29.
                     $name = $result[$i]["cn"][0]; 
30.
                      
31.
                     array_push( $arr,$name ); 
32.
33.
                  asort($arr); 
34.
?>                  
35.
                  <select name="user" size="1">   
36.
<?php                                  
37.
                  for ($j=0; $j<$anzahl; $j++) { 
38.
                    echo '<option>'.$arr[$j].'</option>'
39.
40.
?>                   
41.
                  </select> 
42.
 

Das ist es. Ich hoffe ihr könnt mir dabei weiterhelfen.
Bitte warten ..
Mitglied: SteinBeiser
03.05.2007 um 13:43 Uhr
sorry aber nachdem ich meine serverdaten fürs connect eingetragen hatte
funktioniert das script bis auf ein "?>" zuviel.
Bitte warten ..
Mitglied: Bayano
03.05.2007 um 14:58 Uhr
Hmm, komisch.

bei gibt er mit dem Befehl "print_r(arr);" auch die richtige Sortierung aus. Allerdings mit der Schleife wo ich die Listebox/Combobox fülle, gibt er mir immer den unsortierten Array aus.
Ich vermute das der Array nur temporär sortiert wird, und nicht die Indexwerte geändert werden. Und da ich in der Schleife über die Indexwerte gehe geht das so nicht.
Kann das möglich sein?
Ich weiss nämlich so langsam nicht mehr weiter.
Bitte warten ..
Mitglied: SteinBeiser
03.05.2007 um 16:16 Uhr
sorry bin mit blidheit geschlagen bei mich auch unsortiert.
Mit folgender schleife wirds sortiert ausgegeben.

foreach( $arr as $j ) {
echo '<option>'.$j.'</option>';
}
Bitte warten ..
Mitglied: Bayano
04.05.2007 um 10:53 Uhr
Besten dank, bei mir funktioniert es jetzt auch.
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst PHP 7 und LDAP mit Umlauten (3)

Frage von wiesi200 zum Thema PHP ...

Windows Server
gelöst LDAP Abfrage einrichten (7)

Frage von hscheip zum Thema Windows Server ...

Windows Server
gelöst LDAP Daten anderer Domain abrufen (3)

Frage von it4baer zum Thema Windows Server ...

Apache Server
gelöst Owncloud stellt bei "größeren" Dateien die Arbeit ein (nur bei LDAP Usern) (2)

Frage von andrix zum Thema Apache Server ...

Neue Wissensbeiträge
Viren und Trojaner

Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Externe IP von innen erreichbar machen (15)

Frage von Windows10Gegner zum Thema Router & Routing ...

Windows Installation
Windows 10 neu installieren (12)

Frage von imebro zum Thema Windows Installation ...

Windows Server
Frage zu Server Rack (11)

Frage von rainergugus zum Thema Windows Server ...