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

PHP (LDAP) Suche erstellen wie im AD (Array vergleichen)

Frage Entwicklung PHP

Mitglied: marco1234

marco1234 (Level 1) - Jetzt verbinden

07.07.2010, aktualisiert 09.07.2010, 5917 Aufrufe, 2 Kommentare

Hallo zusammen

Ich muss eine Benutzer-Suchfunktion wie im Active Directory mit PHP erstellen. Man soll nach „Muster Hans“, „Hans Muster“ oder zum Beispiel nach „Hans Mu“ suchen können.

Ich gebe also als Suche „Hans Mu“ ein und drücke auf "Suchen" (LDAP Verbindung etc. steht bereits alles)

Ich habe nun folgendes gemacht:

Den String „Hans Mu“ habe ich gesplittet und in den Array $prio2[$i] geschrieben. Bei beiden String-Teilen wird zusätzlich noch ein * angehängt. Im Array steht jetzt also:
$prio2[0] = Hans*
$prio2[1] = Mu*

Im 1. Durchgang suche ich im AD nach allen Vornamen und Nachnamen, welche „Hans“ enthalten und schreibe die Ergebnisse in den Array $row_1 bzw. $row_2

Das Gleiche natürlich auch mit dem zweiten Suchbegriff „Mu*“.

Die Ergebnisse werden in einem weiteren Array ($masterArray) gespeichert.

01.
while(isset($prio2[$i])) 
02.
03.
 
04.
	//Suche im AD nach Name			 
05.
	@$sr_1=ldap_search($ds,$base_dn, "givenname=".$prio2[$i].""); 
06.
	@$sr_2=ldap_search($ds,$base_dn, "sn=".$prio2[$i]."");	 
07.
	 
08.
	//Ergebnis in Array speichern 
09.
	@$row_1 = ldap_get_entries($ds, $sr_1);	 
10.
	@$row_2 = ldap_get_entries($ds, $sr_2);	 
11.
	 
12.
	//5 dimensionaler Array erstellen 
13.
	$masterArray[$i][0] = $row_1; 	 
14.
	$masterArray[$i][1] = $row_2; 		 
15.
	 
16.
	$i++; 
17.
}
Ich erhalte somit einen 5 dimensionalen Array. Ich kann problemlos ein Wert auslesen.
01.
echo $masterArray[0][0][0]["sn"][0];

Doch irgendwie muss ich nun diese Arrays vergleichen können. Ich habe es bereits mit "in_array" versucht. Ich glaube jedoch, dass das nicht die geeignete Funktion dafür ist…

Wir würde man am idealsten so einen Vergleich machen? Ich bin momentan ein wenig ratlos...

Danke für eure Antworten!

Gruss und einen schönen, hoffentlich sonnigen Tag

marco1234
Mitglied: Dani
07.07.2010 um 11:32 Uhr
Hi marco,
schau dir mal das Beispiel 1 hier an. Die machen das Ganze mit einer Abfrage. Somit müsste $sr ein Array sein, mit allen Einträgen.


Grüße,
Dani
Bitte warten ..
Mitglied: marco1234
07.07.2010 um 14:08 Uhr
Wow super! Hab's so gelöst und es funktioniert bestens! Vielen Dank!

01.
$dn = 'DC=******,DC=***';  
02.
$filter="(&(sn=".$prio2[0]."*)(givenname=".$prio2[1]."*))"
03.
 
04.
$sr=ldap_search($ds, $dn, $filter); 
05.
 
06.
$info = ldap_get_entries($ds, $sr); 
07.
 
08.
if($info[0][0][0] == ""
09.
10.
	$filter="(&(sn=".$prio2[1]."*)(givenname=".$prio2[0]."*))"
11.
	$sr=ldap_search($ds, $dn, $filter);					 
12.
	$info = ldap_get_entries($ds, $sr); 
13.
14.
 
15.
echo "<pre>"
16.
 print_r ($info); 
17.
echo "</pre>"; 
Bitte warten ..
Ähnliche Inhalte
PHP
gelöst Php regex und Array (5)

Frage von Thomas91 zum Thema PHP ...

PHP
gelöst PHP 7 und LDAP mit Umlauten (3)

Frage von wiesi200 zum Thema PHP ...

PHP
gelöst PHP - unique-array() und sort() (14)

Frage von ThomasXYZ zum Thema PHP ...

Windows Server
Server 2008R2 LDAP Dienst ohne AD LDS-Instanz (2)

Frage von staybb zum Thema Windows Server ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(4)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Virtualisierung
Unterschied zwischen VDI und Terminal Server Lösungen (13)

Frage von tukawi06 zum Thema Virtualisierung ...