I'm trying to get a script that will pull user fields via ldap for an intranet page at my organization. I'm running Windows 2000 and Exchange 2003.
I've tried SEVERAL scripts and am not having much luck. I can get a user account authenticated (i've tried a specific script to test this) so I know that I have to have ldap setup correctly in php/apache..... I know this script in particular the way its written doesn't authenticate anyone, but i've switched it up to and it will go from giving me a blank screen to displaying an error about the search criteria....
Heres one example:
<?php
$LDAP_NAME[0] = "HHDC1";
$LDAP_SERVER[0] = "hhdc1";
$LDAP_ROOT_DN[0] = "ou=HH -- USERS, ou=HH -- staff,o=domainname";
//If no server chosen set it to 0
if(!$SERVER_ID)
$SERVER_ID=0;
//Create Query
$ldap_query = "cn=$common";
//Connect to LDAP
$connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]);
if($connect_id)
{
//Authenticate
$bind_id = ldap_bind($connect_id);
//Perform Search
$search_id = ldap_search($connect_id, $LDAP_ROOT_DN[$SERVER_ID], $ldap_query);
//Assign Result Set to an Array
$result_array = ldap_get_entries($connect_id, $search_id);
}
else
{
//Echo Connection Error
echo "Could not connect to LDAP server: $LDAP_SERVER[$SERVER_ID]";
}
//Sort results if search was successful
if($result_array)
{
for($i=0; $i {
$format_array[$i][0] = strtolower($result_array[$i]["cn"][0]);
$format_array[$i][1] = $result_array[$i]["dn"];
$format_array[$i][2] = strtolower($result_array[$i]["givenname"][0]);
$format_array[$i][3] = strtolower($result_array[$i]["sn"][0]);
$format_array[$i][4] = strtolower($result_array[$i]["mail"][0]);
}
//Sort array
sort($format_array, "SORT_STRING");
for($i=0; $i {
$cn = $format_array[$i][0];
$dn = $format_array[$i][1];
$fname = ucwords($format_array[$i][2]);
$lname = ucwords($format_array[$i][3]);
$email = $format_array[$i][4];
if($dn && $fname && $lname && $email)
{
$result_list .= "<A HREF=\"ldap://$LDAP_SERVER[$SERVER_ID]/$dn\">$fname $lname</A>";
$result_list .= " <A HREF=\"mailto:$email\">$email</A><BR>\n";
}
elseif($dn && $cn && $email)
{
$result_list .= "<A HREF=\"ldap://$LDAP_SERVER[$SERVER_ID]/$dn\">$cn</Aglt;";
$result_list .= " <A HREF=\"mailto:$email\">$email</A><BR>\n";
}
}
}
else
{
echo "Result set empty for query: $ldap_query";
}
//Close Connection
ldap_close($connect_id);
//Make Form
echo "<CENTER><FORM ACTION=\"$PHP_SELF\" METHOD=\"GET\">";
echo "Search in:<SELECT NAME=\"SERVER_ID\">";
//Loop Through and Create SELECT OPTIONs
for($i=0; $i<count($LDAP_NAME); $i++)
echo "<OPTION VALUE=\"$i\">".$LDAP_NAME[$i]."</OPTION>";
echo "</SELECT><BR>";
echo "Search for:<INPUT TYPE=\"text\" NAME=\"common\">";
echo "<INPUT TYPE=\"submit\" NAME=\"lookup\" VALUE=\"go\"><BR>";
echo "(You can use for wildcard searches, ex. Stanley will find all Stanleys)<BR>";
echo "</FORM></CENTER>";
//Echo Results
if($result_list)
{
echo "<CENTER><TABLE BORDER=\"1\" CELLSPACING=\"0\" CELLPADDING=\"10\"
BGCOLOR=\"#FFFFEA\" WIDTH=\"450\"><TR><TD>$result_list</TD></TR>
</TABLE></CENTER>";
}
else
echo "No Results";
}
?>