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
|
|
|
|