PHP修改LDAP用戶密碼程序

 

ldap.php

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="https://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>

<title> Reset LDAP Password</title>

<style type="text/css">

dt{

    font-weight: bold;

}

</style>

</head>

<body>

<?php

/*

===========================================================   

    ldap.php    Zhu Weiwei

    Copyright © 2006-2008

    https://www.cncmm.com China. All Rights Reserved.

===========================================================

*/

 

$u   = $_REQUEST['u'];

$op  = $_REQUEST['op'];

$np1 = $_REQUEST['np1'];

$np2 = $_REQUEST['np2'];

$an  = $_REQUEST['an'];

if(!empty($an)){

    if( empty($u) or empty($op) or empty($np1) or empty($np2) ){

        $msg = "Some filed was empty!";

    }else{

        if( $np1 != $np2  ){

            $msg = "confirm password error!";

        }else{

            if($op == $np1){

               $msg = "new password can not be same as old password!";

            }else{

                $ldap_host = "domain.com";

                $ldap_port = 389;

                $base_dn   = "dc=domain,dc=com";

                $connect = @ldap_connect( $ldap_host, $ldap_port);

                if(!$connect){

                    $msg = "Could not connect to LDAP server";

                }else{

                    $user_dn   = sprintf("uid=%s,ou=Staff,dc=domain,dc=com",$u);

                    $user_pass = $op;

 

                    $bind = @ldap_bind($connect, $user_dn, $user_pass);

                    if(!$bind){

                        $msg = "old password error!";

                    }else{

                        $root_dn   = "cn=Manager,dc=domain,dc=com";

                        $root_pass = 'noPa$$w0rd#';

                        $bind = @ldap_bind($connect, $root_dn, $root_pass);

                        if(!$bind){

                            $msg = "Programe can not bind to LDAP server!";

                        }else{

                            $values["userPassword"][0] = "{md5}".base64_encode(pack("H*",md5($np1)));

                            $rs = @ldap_mod_replace($connect,$user_dn,$values);

                            if($rs){

                                $msg = "password modifed success!";

                            }else{

                                $msg = "password modifed failed!";

                            }

                        }

                    }

                }

                @ldap_close($connect);

            }

        }

    }

}

 

if(!empty($msg)){

    print("<h1>$msg</h1>");

}

?>

 

<form method="post" action="">

  <dl>

    <dt>User Id</dt>

    <dd>uid=<input type="text" name="u" size="16" />,ou=Staff,dc=domain,dc=cn</dd>

 

    <dt>Old Password</dt>

    <dd><input type="text" name="op" /></dd>

 

    <dt>New Password</dt>

    <dd><input type="text" name="np1" /></dd>

 

    <dt>Confirm Password</dt>

    <dd><input type="text" name="np2" /></dd>

    <dd><input type="submit" value="Submit" /></dd>

  </dl>

  <input type="hidden" name="an" value="submit" />

</form>

</body>

</html>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *