blob: 4df00e81a83bd8959c601342b0f0c31f76cf58d8 [file] [log] [blame]
<?php
$server = ''; # hostname of ldap server
$ldapacct = ''; # full DN of account VCL uses to log in to LDAP server
$ldappass = ''; # password for $ldapacct
$toplevel = ''; # base DN to use
$search = ''; # what to search for, examples: uid=someuserid, cn=someuserid, samaccountname=someuserid; follows normal LDAP query rules
$results = array("*","+");
#$results = array("dn");
#$results = array('dn', 'givenname', 'sn', 'mail');
#-------------------------------------------------------
if(ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7))
print "debugging set<br>\n";
$ds = ldap_connect("ldaps://$server/");
if (!$ds) {
die("Unable to connect to $server/");
}
if(ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
print "protocol 3 set<br>\n";
# disable LDAP referrals
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$res = ldap_bind($ds, $ldapacct, $ldappass); # use this to login with specific credentials
#$res = ldap_bind($ds); # use this to do an anonymous bind
flush(); ob_flush();
if(! $res) {
print "error: " . ldap_error($ds) . "<br>\n";
die("bind failed<br>\n");
}
else {
print "Bind was successful<br>\n";
}
$srch = ldap_search($ds,
$toplevel,
$search,
$results,
0,
10
);
print "search time: " . (microtime(1) - $start) . "<br>\n";
flush(); ob_flush();
if (ldap_errno($ds) == 4) { # Error code for "too many results"
print "<B>More than 10 results were returned. Only 10 displayed.</B><BR>\n";
}
if ($srch) {
$results = @ldap_get_entries($ds, $srch); # Retrieve all results
print "results time: " . (microtime(1) - $start) . "<br>\n";
flush(); ob_flush();
print "<pre>\n";
print_r($results);
print "</pre>\n";
}
else {
print "<B>Directory lookup failed: ".ldap_error($ds)."</B><BR>\n";
}
@ldap_close($ds); # Close off my connection
?>