2011-05-17 41 views
3

我是一個相當小白使用LDAP(這實際上是我的第一個項目),我無法找到一個答案在谷歌上,可以幫助我... 所以我的問題是: m試圖添加一個與php的聯繫人到Windows 2003服務器上的活動目錄。我可以連接到服務器,並且我也沒有與ldap_bind有關的問題。 但是當我運行程序我總是得到錯誤:與PHP的LDAP_add:操作錯誤

警告:ldap_add()[function.ldap加]:地址:操作錯誤(BLABLA)上線BLA

和ldap_error也只說「操作錯誤」 這是非常模糊的,所以我甚至不知道這是服務器還是與我的代碼有問題。 我看到一些類似問題的線程,其中服務器不允許匿名訪問,但我甚至綁定了一個管理員帳號,但它仍然無法工作。

我的代碼看上去是這樣的:

$ldapcon=ldap_connect("servername"); 

if($ldapcon) { 
    $bind=ldap_bind($ldapcon,"[email protected]", "somePassword"); 
    if($bind) {   
     // create data... 
     $info=array(); 
     $info["cn"][0]   = "Hans Mustermann"; 
     $info["sn"][0]   = "Mustermann"; 
     $info["givenName"][0] = "Hans"; 
     $info["mail"][0]  = "[email protected]"; 
     $info["objectclass"][0] = "top"; 
     $info["objectclass"][1] = "person"; 
     $info["objectclass"][2] = "organizationalPerson"; 
     $info["objectclass"][3] = "contact"; 
     $info["ou"][0]   = "Users"; 
     $info["ou"][1]   = "contact"; 

     // add Data... 
     $r=ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info) 
      or die(ldap_error($ldapcon)); //error: operations error 
    } 
} 

是否有一些相關信息缺失?代碼錯了?我是否需要對廣告設置進行一些更改?這是「遠程維權設置」還是其他問題? 我是不是太愚蠢,盲目地看到問題,還是不容易解決的更大的事情? 你有人有想法嗎?

非常感謝 Chillikarli

+0

我想你應該替換$廣告與$ ldapcon – 2011-05-17 16:01:54

+0

噢,對不起,這不是問題粘貼代碼時我忘了更改它:/ – Chillikarli 2011-05-17 16:03:40

+0

ldap_bind和ldap_error也使用$ ad變量,這是否也是一個錯字? – 2011-05-17 16:04:58

回答

-2

代替或死亡()條件,你可以試試這個

// add Data... 
if(!(ldap_add($ldapcon, "cn=Hans Mustermann, sn=Mustermann", $info))) { 
    echo "There is a problem to create the account\n"; 
    echo "Please contact your administrator !\n"; 
    echo "LDAP Error: ".ldap_error($ldapcon)."\n"; 
    exit; 
} 
ldap_unbind($ldapcon); 
+0

沒有找到任何東西,可能對用戶來說看起來好多了,但是這仍然不能解決我的問題,因爲實際的錯誤消息是相同的,並且不會帶來任何進一步的影響相關信息。問題在於ldap_add根本不起作用。 – Chillikarli 2011-05-17 16:32:18

+0

你可以手動添加所有設置的信息/字段,因爲它們在PHP中的記錄? – 2011-05-17 17:00:57