<?php
class LdapAccess
{
var $hostname = NULL;
var $port = NULL;
var $ldap_set_option_option = NULL;
var $ldap_set_option_newval = NULL;
var $link_id = NULL;
var $search_result = NULL;
function setHostname($hostname)
{
$this->hostname = $hostname;
}
function setPort($port)
{
$this->port = $port;
}
function connect_start(){
if(!($this->wrapper_ldap_connect()))
{
return false;
}
else if(!($this->wrapper_ldap_set_option()))
{
return false;
}
else if(!($this->wrapper_ldap_bind()))
{
return false;
}
else
{
return true;
}
}
function wrapper_ldap_connect()
{
$this->link_id = ldap_connect($this->hostname,$this->port);
if(!$this->link_id)
{
return false;
}
else
{
return true;
}
}
function wrapper_ldap_errno()
{
return ldap_errno($this->link_id);
}
function wrapper_ldap_error()
{
return ldap_error($this->link_id);
}
function wrapper_ldap_set_option()
{
return ldap_set_option($this->link_id,$this->ldap_set_option_option,$this->ldap_set_option_newval);
}
function setLdap_set_option_option($option)
{
$this->ldap_set_option_option = $option;
}
function setLdap_set_option_newval($newval)
{
$this->ldap_set_option_newval = $newval;
}
function setBind_rdn($bind_rdn)
{
$this->bind_rdn = $bind_rdn;
}
function setBind_password($bind_password)
{
$this->bind_password = $bind_password;
}
function wrapper_ldap_bind()
{
return ldap_bind($this->link_id,$this->bind_rdn,$this->bind_password);
}
function wrapper_ldap_search($base_dn,$filter,$justthese=null)
{
if(is_array($justthese))
{
$this->search_result=ldap_search($this->link_id,$base_dn,$filter,$justthese);
}
else
{
$this->search_result=ldap_search($this->link_id,$base_dn,$filter);
}
}
function wrapper_ldap_mod_replace($dn,$entry)
{
return ldap_mod_replace($this->link_id,$dn,$entry);
}
function wrapper_ldap_add($dn,$entry)
{
return ldap_add($this->link_id,$dn,$entry);
}
function wrapper_ldap_count_entries()
{
return ldap_count_entries($this->link_id,$this->search_result);
}
function wrapper_ldap_get_entries()
{
return ldap_get_entries($this->link_id,$this->search_result);
}
function wrapper_ldap_close()
{
ldap_close($this->link_id);
}
}
$ldap = new LdapAccess;
$ldap->setHostname("ldap://hoge.hoge.com:389");
$ldap->setLdap_set_option_option(LDAP_OPT_PROTOCOL_VERSION);
$ldap->setLdap_set_option_newval(3);
$ldap->setBind_rdn("cn=hoge,o=ldap,dc=hoge,dc=com");
$ldap->setBind_password("_hoge");
if($ldap->connect_start())
{
$ldap->wrapper_ldap_search("o=hoge,dc=hoge,dc=com","(&(objectClass=organizationalUnit)(ou;lang-ja=*))");
print_r($ldap->wrapper_ldap_get_entries());
print $ldap->wrapper_ldap_count_entries();
}
else
{
print $ldap->wrapper_ldap_error();
print $ldap->wrapper_ldap_errno();
}
$ldap->wrapper_ldap_close();
?>