Hi,

I am trying to write a script that will allow users within the Windows 2000
Active Directory to be able to change thier personal details on an intranet
website. I have included the script I am using below.

The first part of the script commented as "Search Script" works flawlessly,
even though $base_dn is not set. The problem I am having is with the "Modify
Script", when I try and modify a field it returns with the error:

Warning: ldap_modify(): Modify: Server is unwilling to perform in change.php
on line xx

Is there something in AD that stops ldap_modify? Is my problem with the
unset $base_dn? I had left the $base_dn blank, as I had no idea what it
should be. I would appreciate any help, comments or suggestions.

Thanks!

Phil Dowson

\/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ Script Below \/ \/ \/
\/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/

<?
$base_dn = '';
$ldappass = 'mypassword';
$ldaprdn  = 'AD\\'.$ldapuser;
$ldapconn = @ldap_connect("ad.domain.com", 3268);

//Search Script Start

@ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
@ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if ($ldapconn) {
    $ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass);
}

$filter="samaccountname=$ldapuser";
$justthese = array("samaccountname",  "info");
$read = ldap_search($ldapconn, $base_dn, $filter, $justthese);
$info = ldap_get_entries($ldapconn, $read);

//Search Script End


//Modify Script Start

$info = $_POST["info"];

@ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
@ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);

if ($ldapconn) {
    $ldapbind = @ldap_bind($ldapconn, $ldaprdn, $ldappass);
}

$newinfo["notes"][0]=$notes;
ldap_modify($ldapconn, $base_dn, $newinfo);

//Modify Script End
?>

/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ Script Above /\ /\ /\
/\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\ /\

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to