2013-07-22 58 views
1

嘗試使用LDAP搜索目錄中某個人的信息。除了這個搜索字符串,其他所有的東西都可以工作,但沒有人能夠找出錯誤。LDAP搜索查詢不起作用?

結果只是出現了一個空集,儘管它在bash中返回值。

$result = ldap_search(
    $ds, 
    $base_domain, 
    '(CN=user)' 
) or die("error in search"); 



<?php 
$DEBUGGING = True; 
if($DEBUGGING) 
{ 
    error_reporting(E_ALL); 
    ini_set('display_errors', TRUE); 
} 



$server = 'ldaps://ds.cisco.com'; 
#$port = 639; 
$port = 636; 


$ds=ldap_connect($server, $port); 
echo "connect result is " . $ds . "<br />"; 

if ($ds) 
{ 

    $r = ldap_bind($ds, $username, $password); 
    echo "Bind result is " . $r . "<br />"; 



    $base_domain = 'OU=Standard,OU=Cisco Groups,DC=cisco,DC=com'; 
    #$base_domain = 'dc=cisco,dc=com'; 
    #$base_domain = 'OU=Employees,OU=Cisco Groups,DC=cisco,DC=com'; 
    #$result = ldap_search($ds, $base_domain, '(&(CN=selyons))') or die ("error in search"); 
    #$result = ldap_search($ds, $base_domain, '(&(membersOf=CN=it-puppet-masters,OU=Standard,OU=Cisco Groups,DC=cisco,DC=com)(sAMAccountName=*))') or die ("error in search"); 

    $result = ldap_search($ds, $base_domain, '(CN=user)') or die("error in search"); 

    echo "SEARCHING" . "<br />"; 


    #while ($row=mysql_fetch_array($result, MYSQL_NUM)) 
    #{ 
     #print_r($row); 
     #print($row[0]); 
    #} 

    $info = ldap_get_entries($ds, $result); 



    #$arraystring = print_r($info, true); 
    echo "<pre>"; 
    print_r($info); 
    echo "</pre>"; 
    #echo $arraystring; 
    #print_r($info[699][2][0]); 
    #print_r($info[699][2][1]); 
    #print_r($info[699][2][2]); 
    #print_r($info[699][2][3]); 
    #print_r($info[699][2][4]); 

    #print_r($info[699][2]); 
    #print_r($info[699]); 
    #$members = $info[0]["member"]; 
    #echo $members; 

    #for($i = 0; $i < 30; $i++) 
    #{ 
     #print_r($info[699]); 
    #} 
} 


?> 
+0

定義「不起作用」。有錯誤嗎?搜索結果中是否返回任何搜索結果?你是什​​麼意思「搜索字符串」?你是說過濾器嗎? –

+0

我的意思是這個查詢。它只返回一個空集 – user2601122

+0

提供的搜索參數不匹配任何條目,然後。 –

回答

0

你正在尋找一個對象,其中CN=user是真實的容器OU=Standard,OU=Cisco Groups,DC=cisco,DC=com。也許你的意思是(objectClass=user)或者你真的希望有一個對象的CN屬性設置爲user

這似乎不太合情合理。您可能正在考慮AD默認設置,其中用戶容器實際上是一個容器,因此您可能會有其他預期的cn=Users而不是ou=Users(或dc=Users)。