Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit ldap_search Befehl [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit ldap_search Befehl


 
krusty007
07-06-2006, 16:30 
 
Hi,

komme hier absolut nicht mehr weiter. Hoffe ihr könnt mir helfen.

Also auf der PHP Builder Homepage (http://www.phpbuilder.com/manual2/manual/de/function.ldap-search.php) habe ich mir bereits die Funktion angeschaut nebst Beispiel. Jedoch bekomme ich das für mich nicht hin.

Hier mein Problem CODE:


$dn = 'DomainName=12345.intern.XYZ.de, ou=domains, o=mycompany'; //hier nur mal als Beispiel.
$attr = 'maillocaladdress';

$ds = ldap_connect("192.168.0.1");
$r = ldap_bind($ds);
if($r == 1)
{
$sr = ldap_search($ds,$dn, "(objectclass=*)" ,$attr);
$info = ldap_get_entries($ds, $sr);
echo $info["count"]." found records<p>";
}
else
{
echo "no connection";
}
ldap_close($ds);


Wenn ich das Script verwende bekomme ich immer ein Fehlermeldung angezeigt, das die Funktion ldap_search nicht richtig eingesetzt worden ist. (Mal grob übersetzt)

Wenn ich einen entsprechenden Befehl auf der Konsole des Mailservers ausführe, bekomme ich ein vernünftiges Ergebnis angezeigt.
Kann mir jemand erklären, warum ich bei dem PHP Script nichts angezeigt bekomme, bzw. warum immer eine Fehlermeldung auf dem Screen erscheint? :dontknow:

 
onemorenerd
07-06-2006, 16:36 
 
ldap_search() erwartet als 4. Parameter ein Array, also versuchs mal mit
$attr = array('maillocaladdress');

 
krusty007
07-06-2006, 16:53 
 
hi onemorenerd,

vielen Dank für die Info. Daran hat es tatsächlich gelegen. :(

Habe anscheinden schon zu lange vor dem Code gehangen und habe einfach nix mehr gepeilt. Vielen Dank für die schnelle Antwort.

Krusty

 
krusty007
08-06-2006, 08:05 
 
Nachdem ich nun endlich die Daten aus dem ldap ausgelesen habe, habe ich ein neues Problem. :goth:

Vorab ein Hinweis. Jeder User auf dem ldap hat mehrere Emailadressen. Pro User können das unterschiedlich viele sein.

Nach der Suche im ldap habe ich, wenn ich das richtig interpretiert habe ein mehrdimensionales Array. Wie kann ich es jetzt am geschicktesten anstellen, alle email adressen in aus den verschiedenen Arrays auszulesen und in ein einfaches Array zu speichern?

Als Test hatte ich folgendes in den Code eingefügt:


foreach ($info as $key => $value)
{
echo "Key: $key; Wert: ".$value["maillocaladdress"][0]."<br>";
}


Die Angabe [0] bewirkt das ich jeweils die erste Zeile des Arrays ausgegeben bekomme. Wenn ich [1] eingebe, bekomme ich die zweite Zeile, usw.
Kann ich zuvor die Zeilen zählen und dann mit einer for Schleife arbeiten, oder wie bekomme ich es hin, das ich alle Emailadressen aus den verschiedenen Arrays auslesen kann. :dontknow:

Hat jemand eine Idee. Bin für jeden Ansatz dankbar.
Gruß

 
onemorenerd
08-06-2006, 08:10 
 
Meinst du so?

foreach ($info as $value) {
foreach ($value["maillocaladdress"] as $mail) {
$alle[] = $mail;
}
}

 
krusty007
08-06-2006, 08:52 
 
:danke:

Das sieht schon sehr gut aus. Leider bekomme ich folgende Fehlermeldungen. Denke das liegt daran, dass in den ersten beiden Arrays kein maillocaladdress enthalten ist.

Warning: Cannot use a scalar value as an array in /srv/www/htdocs/test/search.php on line 46
Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46
Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46
Warning: Invalid argument supplied for foreach() in /srv/www/htdocs/test/search.php on line 46

Zeile 46 ist:

foreach ($value["maillocaladdress"] as $mail)

 
onemorenerd
08-06-2006, 09:18 
 
Dann umgib das innere foreach eben mit if(isset()).
Wieso schreibst du einen LDAP-Client in PHP, wenn du solche Grundlagen nicht beherrschst?

 
krusty007
08-06-2006, 10:21 
 
Muss das für einen Kunden machen. Habe aber zuvor noch nicht mit PHP gearbeitet.

Danke für die Hilfe. Hoffe das ich jetzt alleine weiter komme.

Kannst du mir nen Tutorial empfehlen, was ich mir mal für PHP Grundlagen anschauen könnte, damit ich in Zukunft nicht schon wieder so blöde Fragen stelle. :(

 
onemorenerd
08-06-2006, 10:26 
 
http://ffm.junetz.de/members/reeg/DSP/
http://www.schattenbaum.net/php/
http://tut.php-q.net/
und immer wieder http://php.net/manual


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:59 Uhr.