PHP递归搜索/ LDAP

时间:2014-09-02 18:20:33

标签: php recursion ldap

进行LDAP搜索,我必须在搜索中进行递归搜索以查找其他用户属性。就像员工搜索和用户搜索中的经理搜索一样。

这是我的代码:

$id_array = preg_split("/[\s,]+/", $_POST["qlids"]);
    $ldap_connection = ldap_connect($ldaphost, $ldapport);
    if($ldap_connection) {
        $ldap_bind = ldap_bind($ldap_connection,$ldapuser,$ldappswd);
        if($ldap_bind) {
            for($i=0; $i<count($id_array); $i++) {
                if(trim($id_array[$i]) != '') {

                    $ldap_search = ldap_search($ldap_connection, "o=org,c=us", "uniqueid=" . strtolower($id_array[$i]));
                    $ldap_results = ldap_get_entries($ldap_connection, $ldap_search);

                    echo "<tr><td>" . $id_array[$i] . "</td>";
                    if($ldap_results["count"] > 0) {
                        if(trim($ldap_results[0]["cn"][0]) == '') {
                            echo "<td colspan=\"10\" class=\"rt\"><strong>ID Retired</strong></td>";
                        } 
                        else {
                            echo "<td>" . $ldap_results[0]["cn"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["mail"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["telephonenumber"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["l"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["st"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["co"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["resourceflag"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["businesssubgroupname"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["businessunitname"][0] . "</td>";
                            echo "<td>" . $ldap_results[0]["businesssubunitname"][0] . "</td>";
                            //echo "<td>" . $ldap_results[0]["sponsorid"][0] . "</td>";
                            for ($ii=0; $ii<count($id_array); $ii++) {
                                $managersr=ldap_search($ldap_connection, 'o=org, c=us', "uniqueidentifier=".$ldap_results[0]["sponsorid"][0]."");  
                                $managerinfo = ldap_get_entries($ldap_connection, $managersr);
                                echo "<td>" . $managerinfo[$ii]["uniqueid"][0] . "</td>";
                                echo "<td>" . $managerinfo[$ii]["cn"][0] . "</td>";
                            }
                            //echo "<td>" . $ldap_results[0]["nickname"][0] . "</td>";
                        }
                    } 
                    else {
                        echo "<td colspan=\"10\" class=\"nf\">Not Found</td>";
                    }
                    echo "</tr>";
                }
            }
        } 
        else {
            echo "<h1>Authentication Failed</h1>";
        }

出于某种原因,我得到注意:未定义的偏移量:中的1和注意:未定义的偏移量:中的2个声明。 我不只是想把它静音,我想解决这个问题。

请帮忙。

已修复。

     for ($ii=0; $ii<count($ldap_results[0]["sponsorid"][0]); $ii++) {

1 个答案:

答案 0 :(得分:0)

固定。

     for ($ii=0; $ii<count($ldap_results[0]["sponsorid"][0]); $ii++) {