jeeroy
Goto Top

LDAP Abfrage mit PHP gibt nur Array aus?!

Hey,
wenn ich eine über LDAP eine Abfrage mithilfe von php starte, gibt er mir als Ergebnis nur das Wort "Array" aus.

das ist mein Code:
<?php

$ldap_server="*.*.*.*";  
$root_dn="O=root";     

$Informatik= "ou=WORKSTATIONS,ou=INF,ou=NORD,o=root";  

$attr = array("cn");  
$filter = "(objectClass=*)";  


if (( $ldap_con = ldap_connect($ldap_server)) == FALSE ) 
		{
			print (" Verbindung zum LDAP-Server konnte nicht hergestellt werden. ");  
		}

if (( $ldap_bin = ldap_bind($ldap_con)) == FALSE )
		{
			print (" Authentifizierung des Benutzers ist fehlgeschlagen. ");  
		}
echo "Authentifizierung war Erfolgreich, Sie sind nun verbunden mit dem Server $ldap_server !";  

$ldap_search = ldap_search($ldap_con, $Informatik, $filter, $attr, 0, 0) or die ("Ging leider schief!");  
$ldap_result = ldap_get_entries ($ldap_con, $ldap_search);
?>
<br>
<br>
<?
echo "$ldap_result";   

?>

Was dann dabei rauskommt ist folgendes:

Authentifizierung war Erfolgreich, Sie sind nun verbunden mit dem Server *.*.*.* !

Array


Bitte um Hilfe, danke!

Content-ID: 165258

Url: https://administrator.de/contentid/165258

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Dani
Dani 27.04.2011 um 14:10:51 Uhr
Goto Top
Moin,
ich habe eine zwei Bitten an dich:

a) Benutze bitte die Formatierungsmöglichkeiten. Das macht vieles übersichtlicher und man sieht auf den ersten Blick was Code ist und was normaler Text ist
b) Habe ich nicht vor 3-4 Stunden schon mal einen ähnlichen Beitrag gesehen?! Ist der nicht mehr zu gebrauchen?!


Grüße,
Dani
Jeeroy
Jeeroy 27.04.2011 um 14:15:51 Uhr
Goto Top
Hey Dani,

zu a) Klar kann ich das, sorry, dass ich es eben nicht schon gemacht habe.
zu b) Vor 3-4 Stunden war so ein ähnlicher drinne, wobei ich doch nach kurzer Zeit drauf gestoßen bin und ihn dann gelöscht habe, habe seitdem jedoch das Problem.

Grüße.
MarkusWi
MarkusWi 27.04.2011 um 14:21:25 Uhr
Goto Top
Hallo Jeeroy,

und was sagt echo $ldap_result; bzw. 1 bis count($array);

Mfg

Markus
Jeeroy
Jeeroy 27.04.2011 um 14:25:11 Uhr
Goto Top
Hey Markus,

echo $ldap_result; bzw. 1

kommt auch nichts anderes und was du mit count($array) meinst, weiss ich nicht genau.

Grüße
KeinDurchblick
KeinDurchblick 27.04.2011 um 14:32:16 Uhr
Goto Top
Schreib mal statt

echo "$ldap_result";  

print_r($ldap_result);
Jeeroy
Jeeroy 27.04.2011 um 14:40:38 Uhr
Goto Top
Hey KeinDurchblick,

diese Anmerkung hat schon mal sehr weitergeholfen, nun wirds ausgegeben, jedoch werden nicht nur die Arbeitplätze in diesem beispiel INFXX141 ausgegeben, sondern dazu:
[1] => Array ( [cn] => Array ( [count] => 1  =>  INFXX141 )  => cn [count] => 1 [dn] => cn=INFXX141 ,ou=WORKSTATIONS,ou=Informatik,ou=NORD,o=root)
und das mit allen.

Grüße
Arano
Arano 27.04.2011 um 14:46:41 Uhr
Goto Top
48507
48507 27.04.2011 um 14:50:57 Uhr
Goto Top
Das Array ist mehrdimensional:

for ($i=0; $i < $ldap_result["count"]; $i++) {  

  echo $ldap_result[$i]["cn"]."<br>";	  
}
KeinDurchblick
KeinDurchblick 27.04.2011 um 14:57:27 Uhr
Goto Top
Du meldest Dich aber nicht mit einem speziellen Benutzer an, sondern du generierst nur eine LDAP-Abfrage

Das ist kein einzelner Benutzer sondern eine Gruppe (Organisation Unit), also erhälst Du auch keine Einzelantwort, sondern eine Tabelle mit allen
Mitgliedern dieser Gruppe, um es jetzt mal simpel zu formulieren.

ou=WORKSTATIONS,ou=INF,ou=NORD,o=root

Wenn Du einen speziellen Benutzer abfragen willst, dann musst Du nur die Tabelle durchlaufen und sehen
ob dieser User in der Tabelle enthalten ist, oder die LDAP-Abfrage ändern.

Vesuch mal z.B.


$user="INFXX141"; // Das ist die USER-ID welche du Abfragen möchtest.  

$Informatik= "cn=".$user.",ou=WORKSTATIONS,ou=INF,ou=NORD,o=root";   
Jeeroy
Jeeroy 27.04.2011 um 14:59:33 Uhr
Goto Top
Hey Klasse!

Arano, danke für den Link, ich werde es mir durchlesen.
Spytnik, danke für die letzte Schleife!

Und an Alle, Danke für eure Hilfe!
Jeeroy
Jeeroy 27.04.2011 um 15:00:53 Uhr
Goto Top
Aso ja, das habe ich wohl Formuliert, so wie die Ausgabe nun ist sollte sie sein.

Danke für deine Hilfe!