0

MySQL データベースから Active Directory ユーザーを作成するための PHP アプリケーションを作成しています。ある程度動作させることはできますが、DN または CN を動的に設定しようとすると、構文エラーが発生します。警告: ldap_add(): Add: Invalid DN syntax in on line 44. 問題の行は、接続してユーザーを作成する場所です。CN と DN を静的に設定すると、完全に機能します。以下は私のコードです。私はまだPHPプログラミングに非常に慣れていないので、それをよりうまく機能させる方法を聞きたいです..

 <?php
ini_set('display_errors',1);
error_reporting(E_ALL);

//variables
$lastname=$_POST["LastName"];
$firstname=$_POST["FirstName"];
$middlename=$_POST["MiddleName"];
$empid=$_POST["empid"];

$samaccount=$firstname.'.'.$lastname;
$displayname = $lastname.', '.$firstname;

$domain = "domain.lan";
$ldap_dn ="CN=Users,DC=domain,DC=lan";
$ldap_usr_dom = "@".$domain;

//end variables
$ldapConn = ldap_connect('ldap://PDC:389');
ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind( $ldapConn, 'CN=administrator,CN=Users,DC=domain,DC=lan', 'pw');
//$dn ="test",$ldap_dn;

//this line and one below I cannot set with any variable
$dn_user='CN=$lastname",CN=Users,DC=domain,DC=lan';

$ldaprecord['cn'] = "$lastname";
$ldaprecord['givenName'] = $firstname;  
$ldaprecord['sn'] = $lastname;
$ldaprecord['sAMAccountName'] = $samaccount;
$ldaprecord['UserPrincipalName'] = "$samaccount$ldap_usr_dom";
$ldaprecord['displayName'] = $displayname;
$ldaprecord['UserAccountControl'] = "544";
$ldaprecord['objectclass'][0] = 'top';
$ldaprecord['objectclass'][1] = 'person';
$ldaprecord['objectclass'][2] = 'organizationalPerson';
$ldaprecord['objectclass'][2] = 'user';
$ldaprecord['mail'] =  "$samaccount$ldap_usr_dom";
$ldaprecord['employeeID'] =  "$empid";

ldap_add($ldapConn, $dn_user, $ldaprecord);
ldap_unbind($ldapConn);  
echo "request processed";

?>
4

0 に答える 0