PDA

Bekijk Volledige Versie : PHP connecten met openldap



bami82
16/02/07, 11:36
Beste,

Ik probeer te connecten met mijn openldap server puur om even te testen. Dus ik heb even een scriptje van php.net/ldap afgepakt en krijg hier een foutmelding op.

Dit is het script



<?php
// basic sequence with LDAP is connect, bind, search, interpret search
// result, close connection

echo "<h3>LDAP query test</h3>";
echo "Connecting ...";
$ds=ldap_connect("localhost"); // must be a valid LDAP server!
ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
echo "connect result is " . $ds . "<br />";

if ($ds) {
echo "Binding ...";
$r=ldap_bind($ds); // this is an "anonymous" bind, typically
// read-only access
echo "Bind result is " . $r . "<br />";

echo "Searching for (dc=*) ...";
// Search surname entry
$sr=ldap_search($ds, "dc=example","dc=com");
echo "Search result is " . $sr . "<br />";

echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "<br />";

echo "Getting entries ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Data for " . $info["count"] . " items returned:<p>";

for ($i=0; $i<$info["count"]; $i++) {
echo "dn is: " . $info[$i]["dn"] . "<br />";
echo "first cn entry is: " . $info[$i]["cn"][0] . "<br />";
echo "first email entry is: " . $info[$i]["mail"][0] . "<br /><hr />";
}

echo "Closing connection";
ldap_close($ds);

} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
?>



De output is:

LDAP query test
Connecting ...connect result is Resource id #2
Binding ...Bind result is 1
Searching for (dc=*) ...
Warning: ldap_search() [function.ldap-search]: Search: No such object in /var/www/html/ldap.php on line 19
Search result is

Warning: ldap_count_entries(): supplied argument is not a valid ldap result resource in /var/www/html/ldap.php on line 22
Number of entires returned is
Getting entries ...


Warning: ldap_get_entries(): supplied argument is not a valid ldap result resource in /var/www/html/ldap.php on line 25
Data for items returned:

Closing connection


Heeft iemand een idee waar dit foutgaat? PHP is gecompiled met ldap support. phpldapadmin werkt dan ook prima.

masterpe
16/02/07, 13:12
heet je tree ook example.com?

bami82
16/02/07, 13:27
in mijn slapd.conf file staat:

# The base of your directory in database #1
suffix "dc=example,dc=com"

Neem aan dat je dit bedoelde?
(Ben niet zo bekend met ldap)

Heb net print ldap_error() toegevoegd,

dan krijg ik Warning: Wrong parameter count for ldap_error() in /var/www/html/ldap.php on line 21

Vermoed dat ik nog iets moet toevoegen aan om op te filteren of iets dergelijks
$sr=ldap_search($ds, "dc=example","dc=com");

Ok het werkt nu, moest inderdaad een filter toevoegen

$sr=ldap_search($ds, "dc=web-ici,dc=com", "cn=*");

bedankt.

wonko
18/02/07, 10:52
Probeer eerst maar eens even je LDAP in orde te krijgen, voor je deze gaat query-en. Zorg dat de queries via de command line werken, voor je verder gaat en deze via scripts en dergelijke meer wenst uit te lezen...

Er is phpldapadmin voor als je niet 100% ldap kent, ook zeer handig!