使用LDAP PHP添加密码用户

使用LDAP PHP添加密码用户,php,mysql,active-directory,ldap,Php,Mysql,Active Directory,Ldap,我每天都在寻找我的问题,我尝试了很多解决方案,但没有找到…:( 我想使用ldap_add和PHP创建一个用户。在没有启用帐户和密码的情况下工作正常。您可以找到下面的代码 你能帮帮我吗 配置: PHP5.6 带广告的Windows Server 2012 R2 当我使用$info[“useraccountcontrol”]=544;时,我可以启用帐户,但该帐户没有密码…用户必须在没有密码的情况下登录,并在第一次连接时键入新密码* 我试图在512处添加带有$info['userPassword']和

我每天都在寻找我的问题,我尝试了很多解决方案,但没有找到…:(

我想使用ldap_add和PHP创建一个用户。在没有启用帐户和密码的情况下工作正常。您可以找到下面的代码

你能帮帮我吗

配置: PHP5.6 带广告的Windows Server 2012 R2

当我使用
$info[“useraccountcontrol”]=544;
时,我可以启用帐户,但该帐户没有密码…用户必须在没有密码的情况下登录,并在第一次连接时键入新密码*

我试图在512处添加带有
$info['userPassword']
和chand UserAccountControl的密码,但出现以下错误:

ldap\u add():添加:服务器不愿意执行

这是我的密码:

<?php
$name = htmlspecialchars($_POST["name_build"]);
$lastname = htmlspecialchars($_POST["lastname_build"]);
$department = utf8_encode(htmlspecialchars($_POST["department_build"]));
$title = utf8_encode(htmlspecialchars($_POST["title_build"]));
$dn="CN=$name OU=Users, o=Domocom, c=net";

$ds = ldap_connect("192.168.1.1",389);  
if ($ds) {

    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); // IMPORTANT
    ldap_bind($ds, "administrateur@domocom.net", "password");

    // Prépareles données
    $cn = $info["cn"] = "$lastname $name";
    $info["sn"]="$name";
    $info["givenname"]="$lastname";
    $info["displayname"]="$lastname $name";
    $info["name"]="$lastname $name";
    $info["userprincipalname"]= "$lastname.$name@domocom.net";
    $info["samaccountname"]= "$lastname.$name";
    $info["title"]="$title";
    $info["department"]="$department";
    $info["mail"]="$lastname.$name@domocom.fr";
    $info["postalcode"]="69009";
    $info["objectClass"][0]="user";
    //$info['userPassword'] = "password";
    //$info["useraccountcontrol"]=544;

    $r = ldap_add($ds,"CN=$cn,OU=Users,OU=Direction,OU=Domocom-SP,DC=domocom,DC=net", $info);
    ldap_close($ds);
} else {
    echo "unable to connect to ldap server";
}
?>

非常感谢


PS:这是我学校的假社会。:p

如果是广告,你可能需要使用安全的LDAP连接

为此,您需要调用
ldap\u connect('ldaps://192.168.1.1:“);
。使用两个参数调用
ldap\u connect
是不推荐的,应该避免。将其与ldap-URI一起使用

您还可以省略
ldap\u connect
周围的
if…else
,因为它几乎在所有情况下都会返回true。并且
true
返回值并不意味着与服务器的连接实际已建立。首先在第一个ldap\u-命令上建立连接,该命令需要一个通常为
ld的连接ap_bind

然后你可能想看看,然后