Examples
Retrieve information for all entries where the surname starts
with "S" from a directory server, displaying an
extract with name and email address.
Example 1. LDAP search example
<?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!
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 (sn=S*) ...";
// Search surname entry
$sr=ldap_search($ds, "o=My Company, c=US", "sn=S*");
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>";
}
?>
Using the PHP LDAP calls
Before you can use the LDAP calls you will need to know
..
The name or address of the directory server you will use
The "base dn" of the server (the part of the
world directory that is held on this server, which could
be "o=My Company,c=US")
Whether you need a password to access the server (many
servers will provide read access for an "anonymous
bind" but require a password for anything else)
The typical sequence of LDAP calls you will make in an application
will follow this pattern:
ldap_connect() // establish connection to server
|
ldap_bind() // anonymous or authenticated "login"
|
do something like search or update the directory
and display the results
|
ldap_close() // "logout"