Nataraj Pandiyan Ответов: 1

Как Добавить пользователя в ldap с помощью PHP


Хай,

Мне нужно добавить пользователя на сервер Ldap с помощью php.
я получил ошибку № 16

Что я уже пробовал:

<?php
$AD_server = "192.168.1.55"; 

$ds = ldap_connect($AD_server);
if ($ds) {
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT
    $result = ldap_bind($ds, "cn=admin,dc=sw,dc=com","jpqw$"); //BIND
	if (!$result)
	{
	echo 'Not Binded';
	}
	
     $ldaprecord['objectclass'][0] = "inetorgperson";
     $ldaprecord['objectclass'][1] = "posixaccount";
     $ldaprecord['objectclass'][2] = "top";
     $ldaprecord['cn'] = 'netbeans';
     $ldaprecord['givenname'] = 'netbeans1';
     $ldaprecord['sn'] = 'netbeans2';
     $ldaprecord['mail'] = 'emai@gmail.com';
     $ldaprecord['mobile'] = '+91 1234567890';
     $ldaprecord['uid'] = 'nb';
     $ldaprecord['displayname'] = 'netbeans';
     $ldaprecord['uidnumber'] = '1005';
     $ldaprecord['gidnumber'] = '501';
     $ldaprecord['userpassword'] = "{crypt}123456";
     $ldaprecord['gecos'] = 'netbeans';
     $ldaprecord['loginshell'] = '/bin/sh';
     $ldaprecord['homedirectory'] = '/home/users/nb'; 
     $ldaprecord['shadowexpire'] = '-1';
     $ldaprecord['shadowflag'] = '0'; 
     $ldaprecord['shadowwarning'] = '7'; 
     $ldaprecord['shadowmin'] = '8'; 
     $ldaprecord['shadowmax'] = '999999';
     $ldaprecord['shadowlastchange'] = '10877';
     $ldaprecord['postalcode'] = '31000';
     $ldaprecord['l'] = 'toulouse';
     $ldaprecord['o'] = 'example';
     $ldaprecord['homephone'] = '+33 (0)40 35963258';
     $ldaprecord['title'] = 'system administrator'; 
     $ldaprecord['postaladdress'] = '';
     $ldaprecord['initials'] = 'jd';
     
		
		

		
		
		
// $ldaprecord["cn"] = "testuser";
// $ldaprecord["givenname"] = "Test";
// $ldaprecord["sn"] = "User";
// $ldaprecord["sAMAccountName"] = "testuser";
// $ldaprecord['userPrincipalName'] = "testuser@rndsw.com";
// $ldaprecord["objectClass"] = "user";
// $ldaprecord["displayname"] = "Test User";
// $ldaprecord["userPassword"] = "Password01";
// $ldaprecord["userAccountControl"] = "544";
 $base_dn = "cn=netbeans,cn=HR,ou=cbe,dc=sw,dc=com";
    $r = ldap_add($ds, $base_dn, $ldaprecord);
   if ($r)
   {
   echo 'Success';
   }
   else
   {
   echo ldap_errno($ds) ;
   }
} else {
    echo "cannot connect to LDAP server at $AD_server.";
}
?>

Jochen Arndt

Не Шур, если это поможет, но вы должны попробовать.

Не устанавливайте пустые атрибуты:

//$ldaprecord ['postaladdress'] = ";

Nataraj Pandiyan

Ваше Право и спасибо вам

Jochen Arndt

Приятно слышать, что это было решение.

Я опубликую один из них, чтобы на этот вопрос был ответ.

1 Ответов

Рейтинг:
0

Jochen Arndt

Не задавайте пустых атрибутов в LDAP.

В вашем случае прокомментируйте соответствующую строку:

//$ldaprecord['postaladdress'] = '';