本文将演示如何使用PHP连接一个LDAP服务器...... 
						
							
<?>> 
定制搜索界面的HTML表格  最后,我们要定制搜索用的HTML表格,它是用来给用户执行搜索的。
//定制表格
echo " <CENTER><FORM action='\"$PHP_SELF\"' method='\"GET\"'>"; 
echo "Search in:<SELECT name='\"SERVER_ID\"'>"; //循环以建立SELECT选项 for($i=0; $i<COUNT($LDAP_NAME); <br $i++)> echo "<OPTION selected value='\"$i\"'>".$LDAP_NAME[$i]."</OPTION>"; echo "</SELECT>
"; 
echo "Search for:<INPUT name='\"common\"' type='\"text\"'>"; 
echo "<INPUT name='\"lookup\"' type='\"submit\"' value='\"go\"'>
"; 
echo "(You can use * for wildcard searches, ex. * Stanley will find all Stanleys)
"; 
echo "</FORM></CENTER>"; 
?> 
  代码中的$PHP_SELF是一个全局的常量,代表的是脚本页面自身,其中的循环是用来通过我们的$LDAP_NAME变量创建SELECT选项。
显示结果  现在所有的工作已经完成了,我们将打印出结果集。如果没有符合的结果,将会显示"No Results"的信息。
<<?>php 
//显示结果
if($result_list) 
{ 
echo " <CENTER><TABLE border='\"1\"' cellPadding='\"10\"' cellSpacing='\"0\"' 
BGCOLOR=\"#FFFFEA\" WIDTH=\"450\"> <TBODY><TR><TD>$result_list</TD></TR>
</TBODY></TABLE></CENTER>"; 
} 
else 
echo "No Results"; 
?> 
源代码  以下是完整的源代码,只要将它剪切并粘贴到一个HTML文档,就可以尝试一下了。
<?php 
$LDAP_NAME[0] = "Netscape Net Center"; 
$LDAP_SERVER[0] = "memberdir.netscape.com"; 
$LDAP_ROOT_DN[0] = "ou=member_directory,o=netcenter.com"; 
$LDAP_NAME[1] = "Bigfoot"; 
$LDAP_SERVER[1] = "ldap.bigfoot.com"; 
$LDAP_ROOT_DN[1] = ""; 
//如果没有选择服务器的话将它设置为0 
if(!$SERVER_ID) 
$SERVER_ID=0; 
//建立查询
$ldap_query = "cn=$common"; 
//连接到LDAP 
$connect_id = ldap_connect($LDAP_SERVER[$SERVER_ID]); 
if($connect_id) 
{ 
//认证 
$bind_id = ldap_bind($connect_id); 
//执行搜索 
$search_id = ldap_search($connect_id, $LDAP_ROOT_DN[$SERVER_ID], $ldap_query); 
//将结果集合分配给一个数组 
$result_array = ldap_get_entries($connect_id, $search_id); 
} 
else 
{ 
//显示连接错误 
echo "Could not connect to LDAP server: $LDAP_SERVER[$SERVER_ID]"; 
} 
//如果搜索成功,将结果排序 
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($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 .= " <$email>
\n"; 
} 
elseif($dn && $cn && $email) 
{ 
$result_list .= "<A href='/"ldap://$LDAP_SERVER[$SERVER_ID]/$dn/"'>$cn</A>"; 
$result_list .= " <<A href='/"mailto:$email/"'>$email</A>
\n"; 
} 
} 
} 
else 
{ 
echo "Result set empty for query: $ldap_query"; 
} 
//关闭连接
ldap_close($connect_id); 
//定制表格
echo " <CENTER><FORM action='\"$PHP_SELF\"' method='\"GET\"'>"; 
echo "Search in:<SELECT name='\"SERVER_ID\"'>"; //循环以建立SELECT选项 for($i=0; $i echo "<OPTION selected value='\"$i\"'>".$LDAP_NAME[$i]."</OPTION>"; echo "</SELECT>
"; 
echo "Search for:<INPUT name='\"common\"' type='\"text\"'>"; 
echo "<INPUT name='\"lookup\"' type='\"submit\"' value='\"go\"'>
"; 
echo "(You can use * for wildcard searches, ex. * Stanley will find all Stanleys)
"; 
echo "</FORM></CENTER>"; 
//显示结果
if($result_list) 
{ 
echo " <CENTER><TABLE border='\"1\"' cellPadding='\"10\"' cellSpacing='\"0\"' 
BGCOLOR=\"#FFFFEA\" WIDTH=\"450\"> <TBODY><TR><TD>$result_list</TD></TR>
</TBODY></TABLE></CENTER>"; 
} 
else 
echo "No Results"; 
} 
?> 
查看本文来源