Zend - The PHP Company




LDAP

Add Code


Simple LDAP CLASS  

Type: class
Added by: ruddyjs
Entered: 12/07/2002
Last modified: 07/12/2001
Rating: - (fewer than 3 votes)
Views: 8470
The LDAP class for PHP is an encapsulated PHP LDAP.


<?php
//////////////////////////////////////////////////
//                                              //
//   Class       : LDAP                         //
//   Language    : PHP                          //
//   Author      : Ruddy J. Suhatril            //
//                 ruddy_js@yahoo.com           //
//   Created     : 5 Feb 2003                   //
//   Description : This class for LDAP connect  //
//                                              //
//////////////////////////////////////////////////

class LDAP {
var 
$ds;
var 
$connected;
var 
$host;
var 
$bd;
var 
$pass;
var 
$errmsq;
var 
$ldap_dn;
var 
$searched;
var 
$n_entry;

    function 
LDAP($host,$pass){
        
$this->host=$host;
       
$this->pass=$pass;
       
$this->connected=false;
        
$this->bd=false;
           
$this->searched=false;        
    }
 
    function 
SetHost($str){
       
$this->host=$str;
    }
    
    function 
SetPass($str){
       
$this->pass=$str;
    }

    function 
CreateParam($param_data){
           if(
is_array($param_data)){
             foreach(
$param_data as $key=>$val){
                
$pl[]=trim($key)."=".$val;
             }
             
$ld=implode(",",$pl);
             return 
$ld;
           } else {
             return 
false;
           }
        }

    function 
Init(){
       if(
$this->connected){
         
$this->Closed();
             return 
false
           } 
           if(
$this->ds=ldap_connect($this->host)){
              
$this->connected=true;
       } else {
              
$this->errmsg="Cannot establish connection";
              
$this->connected=false;
       }
       return 
$this->connected;
    }

    function 
GetEntry(){
           return 
true;
        }

        function 
Search($filter,$param_info){
       return 
true;
    }
    
    function 
Modify($ld_data,$param_info=""){
           if(
$this->bd){
             if(
is_array($ld_data)){
               if(
$param_info==""){
                 
$ldn=$this->ldap_dn;
               } else {
                 
$ldn=$this->CreateParam($param_info);
               }
               if(
$r=ldap_modify($this->ds,$ldn,$ld_data)){
                 return 
true;
               } else {
                 
$this->errmsg="Error in adding data";
                 return 
false;
               }
             } else {
               
$this->errmsg="Your parameter isn't array";
               return 
false;
             }
           } else {
             
$this->errmsg="You havn't bind your LDAP server yet";
             return 
false;
           }

        }

    function 
Add($ld_data,$param_info=""){
       if(
$this->bd){
             if(
is_array($ld_data)){
               if(
$param_info==""){
                 
$ldn=$this->ldap_dn;
               } else {
                 
//$ldn=$this->CreateParam($param_info);
                 
$ldn=$param_info;
           }
           if(
$r=ldap_add($this->ds,$ldn,$ld_data)){
                 return 
true;
           } else {
                 
$this->errmsg="Error in adding data";
             return 
false;
           }
         } else {
               
$this->errmsg="Your parameter isn't array";
           return 
false;
         }
       } else {
             
$this->errmsg="You havn't bind your LDAP server yet";
         return 
false;
       }
          
    }
    
    function 
BindIt($param_ldap){
           if(
is_array($param_ldap)){
         
$this->ldap_dn=$this->CreateParam($param_ldap);
             if(
$r=ldap_bind($this->ds,$this->ldap_dn,$this->pass)){
               
$this->bd=true;
             } else {
           
$this->errmsg=ldap_error($this->ds);
               
$this->bd=false;
         }
       } else {
             
$this->errmsg="Your parameter isn't array";
             
$this->bd=false;
       }
           return 
$this->bd;
    }
 
        function 
Closed(){
           if(
$r=@ldap_free_result($this->ds)){
         
$this->connected=false;
         return 
true;
           } else {
             
$this->errmsg=ldap_error($this->ds);
         return 
false;
       }
    }

    function 
GetError(){
        return 
$this->errmsg;
    }

}

?>



Usage Example


<?php
$bdn
="cn=$npm, ou=undergraduate, ou=student, o=Gunadarma University, c=ID";
$l=new LDAP($STUDENT_LDAP_HOST,$STUDENT_LDAP_PASS);
if(
$l->Init()){
  if(
$l->BindIt($STUDENT_LDAP_DN)){
 
$isi["cn"]=$name;
    
$isi["sn"]=$name;
    
$isi["ou"]="undergraduate";//
    
$isi["objectClass"][]="top";//
    
$isi["objectClass"][]="person";//
    
$isi["objectClass"][]="inetOrgPerson";//
    
$isi["objectClass"][]="qmailUser";//
    
$isi["objectClass"][]="gunadarmaStudent";//
    
$isi["gndNPM"]=$npm;
    
$isi["gndSTATUS"]="mahasiswa";//
    
$isi["gndAKTIVE"]="0";//
    
$isi["gndJURUSAN"]=$STUDENT_JUR;
    
$isi["gndKELAS"]=$kelas;
    
$isi["gndANGKATAN"]=$angkatan;
    
$isi["userPassword"]="{crypt}$pass";
if(
$r=$l->Add($isi,$bdn)){
      echo 
"Success";
    } else {
      echo 
$l->GetError();
    }
  } else {
    echo 
$l->GetError();
  }
} else {
  echo 
$l->GetError();
}
?>


Rate This Script





Search



This Category All Categories