ldap_add() Error ช่วยด้วยครับ

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: ldap_add() Error ช่วยด้วยครับ

Re: ldap_add() Error ช่วยด้วยครับ

โดย mindphp » 20/01/2018 7:02 pm

ใครที่เพิ่งเข้ามาดู ทำความรู้จักเรื่อง Ldap ดูที่นี่
https://www.mindphp.com/%E0%B8%84%E0%B8% ... B8%9B.html

Re: ldap_add() Error ช่วยด้วยครับ

โดย nemo123 » 15/11/2011 3:48 pm

ลองเปลี่ยน CN บรรทัดนี้ค่ะ
$r = ldap_add($ds, "CN=John Jones,OU=CRHuser,DC=crhdomain,DC=local", $info);

Re: ldap_add() Error ช่วยด้วยครับ

โดย chuap006 » 21/08/2009 4:00 pm

ได้แล้วครับ...ขอบคุณมาก
แก้โดยการ set userAccountControl=544
แต่เราจะ Disable option User must change password at next logon ยังไงครับ
set userAccountControl เป็นค่าอะไรดี.
.....

Re: ldap_add() Error ช่วยด้วยครับ

โดย mindphp » 21/08/2009 3:46 pm

ข้อมูลบางส่วนที่ ใส่ไปอาจไม่ถ็ต้อง
ลอง เปลี่ยน

โค้ด: เลือกทั้งหมด

$adduserAD["mail"][0] = "[email protected]";
ให้เป็น email ที่มีณุปแบบที่ถูกดูครับ
เช่น

โค้ด: เลือกทั้งหมด

$adduserAD["mail"][0] = "[email protected]";

Re: ldap_add() Error ช่วยด้วยครับ

โดย chuap006 » 21/08/2009 3:06 pm

ขอบคุณครับ ตอนนี้ผม Add ได้แล้ว

โค้ด: เลือกทั้งหมด

$adduserAD["cn"][0] = "php";
$adduserAD["sn"][0] = "Bisdorff";
$adduserAD["samaccountname"][0] = "php";
$adduserAD["objectclass"][0] = "top";
$adduserAD["objectclass"][1] = "person";
$adduserAD["objectclass"][2] = "organizationalPerson";
$adduserAD["objectclass"][3] = "user";
$adduserAD["displayname"][0] = "jemp miller";
$adduserAD["name"][0] = "php";
$adduserAD["givenname"][0] = "php";
$adduserAD["company"][0] ="vdl";
$adduserAD["description"][0] = "my description";
$adduserAD["mail"][0] = "[email protected]";
$adduserAD["samaccountname"][0] = "php";
$adduserAD["userprincipalname"][0] ="[email protected]";
$adduserAD["userAccountControl"][0]="66048"; 
$adduserAD["userPassword"][0] = $newPassw;	
    // add data to directory
    $ldapbind = ldap_bind($ds,"[email protected]", "xxxx");	
	if ($ldapbind) {
        echo "LDAP bind successful...";
		$ad = ldap_add($ds, "CN=php, OU=CRHuser, DC=crhdomain, DC=local", $adduserAD);
    } else {
        echo "LDAP bind failed...";
    }
    ldap_close($ds);
แต่มันติดปัญหาใหม่ครับ...
ที่เครื่อง ADSERVER -- User ที่เพิ่มเข้าไปใหม่กลับมี X ติดอยู่ตามรูป

ไม่ทราบว่าต้องแก้ยังไงครับ.. เหมือนมันจถูก Disable ไว้ เราจะ Enable ใน php ยังไงครับ
แนบไฟล์
AD
AD
AD2.JPG (37.42 KiB) Viewed 1086 times

Re: ldap_add() Error ช่วยด้วยครับ

โดย ob1 » 20/08/2009 1:00 pm

ใกล้ๆจะออกแล้วครับ ผิดแถวๆนั้นแหละผมว่านะ :-D

Re: ldap_add() Error ช่วยด้วยครับ

โดย chuap006 » 20/08/2009 9:14 am

ขอบคุณครับ..ผมลองทั้ง 2 แบบแล้วแต่มันยังไม่ได้ แต่กรณีที่ 2 error มันเปลี่ยนไปครับ และผลที่ได้เป็นแบบนี้ครับ
1.

โค้ด: เลือกทั้งหมด

<?php
$ds = ldap_connect("172.16.1.10");  // assuming the LDAP server is on this host
if ($ds) {
    // prepare data
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["mail"] = "[email protected]";
    $info["objectclass"][0] = "top";
	$info["objectclass"][1] = "person";
	//$info["objectclass"][2] = "organizationalPerson";
	//$info["objectclass"][3] = "user";
    // add data to directory
    $ldapbind = ldap_bind($ds,"[email protected]", "xxxx");	
	if ($ldapbind) {
        echo "LDAP bind successful...";
		$ad = ldap_add($ds, "CN=Jones, ou=CRHuser, DC=crhdomain, DC=local", $info);
    } else {
        echo "LDAP bind failed...";
    }
    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?> 
ผลลัพธ์
LDAP bind successful...
Warning: ldap_add() [function.ldap-add]: Add: Invalid DN syntax in C:\AppServ\www\AD2\add2.php on line 16
และวีธีที่ 2 ตัด objectclass ออกไป

โค้ด: เลือกทั้งหมด

<?php
$ds = ldap_connect("172.16.1.10");  // assuming the LDAP server is on this host
if ($ds) {
    // prepare data
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["mail"] = "[email protected]";
    // add data to directory
    $ldapbind = ldap_bind($ds,"[email protected]", "xxxx");	
	if ($ldapbind) {
        echo "LDAP bind successful...";
		$ad = ldap_add($ds, "CN=Jones, ou=CRHuser, DC=crhdomain, DC=local", $info);
    } else {
        echo "LDAP bind failed...";
    }
    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?> 
ผลลัพธ์
LDAP bind successful...
Warning: ldap_add() [function.ldap-add]: Add: Object class violation in C:\AppServ\www\AD2\add2.php on line 16

Re: ldap_add() Error ช่วยด้วยครับ

โดย mindphp » 20/08/2009 1:01 am

ผมก็ไม่ค่อยได้ใช้ LDAP นะครับแต่คิดว่าถ้าตรงนั้นผ่าน
น่าจะมีปัญหา เกี่ยวกับ $info
ลอง เปลี่ยน

โค้ด: เลือกทั้งหมด

$info["objectclass"] = "person";
 
เป็น

โค้ด: เลือกทั้งหมด

$info["objectclass"] = array("person");
หรือ 
$info["objectclass"][1] ="person";
 
หรือลอง $info["objectclass"] ออกไปก่อน ลองดูครับ วิธีไหนได้ บอกด้วยนะครับ

Re: ldap_add() Error ช่วยด้วยครับ

โดย chuap006 » 19/08/2009 8:08 pm

mindphp เขียน:ก่อน add ลองเพิ่ม

โค้ด: เลือกทั้งหมด

    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }
 
ผมลองเพิ่มเข้าไปแล้วครับ ตามนี้

โค้ด: เลือกทั้งหมด

$ldapbind = ldap_bind($ds,"[email protected]", "xxxx");	
if ($ldapbind) 
{
      echo "LDAP bind successful...";      
} else {
        echo "LDAP bind failed...";
}
$r = ldap_add($ds, "CN=Jones,OU=CRHuser,DC=crhdomain,DC=local", $info);
และผลที่ได้คือ
LDAP bind successful...
Warning: ldap_add() [function.ldap-add]: Add: Invalid DN syntax in C:\AppServ\www\AD2\add2.php

Re: ldap_add() Error ช่วยด้วยครับ

โดย mindphp » 19/08/2009 7:19 pm

ก่อน add ลองเพิ่ม

โค้ด: เลือกทั้งหมด

    if ($ldapbind) {
        echo "LDAP bind successful...";
    } else {
        echo "LDAP bind failed...";
    }
 

ข้างบน