R
rlee6087 author
I get this error when I try and run the application from the server, using the production web server. However when I run the application locally using the built in web server , it works fine, and authenticates via ldap. I'm using phph runner 6.1, IIS and mysql. here is the error again. Fatal error: Call to undefined function ldap_connect() in E:\Web\PHP\phproot\Communications_Plan\output\classes\runnerldap.php on line 23
Please help. also here is a copy of the runnerldap.php file that it refers to. <?php
/**
- Class for display admin_rights_list
/
class RunnerLdap
{
var $ldap_domainName = ''; var $ldap_serverIP = NULL; var $ldapconn = null; var $ldapbind = null; function RunnerLdap($aDomainName,$aServerIP){
$this->ldap_domainName = $aDomainName;
$this->ldap_serverIP = $aServerIP;
} function runner_ldap_connect($aUsername,$aPassword){
// connect to ldap server
$this->ldapconn = ldap_connect("ldap://".$this->ldap_serverIP);
if (!$this->ldapconn || ldap_errno($this->ldapconn)!=0)
return false;
@ldap_set_option($this->ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($this->ldapconn, LDAP_OPT_REFERRALS, 0);
// binding to ldap server
$this->ldapbind = @ldap_bind($this->ldapconn, $aUsername."@".$this->ldap_domainName, $aPassword);
if(!$this->ldapbind)
return false;
return true;
} /**
- Search LDAP tree
- @ An LDAP link identifier, returned by ldap_connect()
- @ string The search filter
- @ array An array of the required attributes
/
function runner_ldap_getData($filter,$attributes=array()){
$ldap_dn = $this->ldap_DomainToDN($this->ldap_domainName);
if (sizeof($attributes)) {
$query = ldap_search($this->ldapconn, $ldap_dn, $filter);
}else {
$query = ldap_search($this->ldapconn, $ldap_dn, $filter, $attributes);
}
// Read all results from search
$entries = ldap_get_entries($this->ldapconn, $query);
return $this->runner_convert_entries($entries);
//return $entries;
} function runner_convert_entries($aData){ $resultArr = array();
if (!sizeof($aData)) {
return null;
} for ($j=0;$j<$aData['count'];$j++){
$result = array();
foreach ($aData[$j] as $key=>$val){
if (is_numeric($key))
continue;
if ($val["count"] > 1 || $key == 'memberof'){
//set array
$tmpResult = array();
for ($i=0;$i<$val['count'];$i++){
$tmpResult[] = $val[$i];
}
$result[$key] = $tmpResult;
}
else if ($key=='dn'){
$result[$key] = $val;
}
else {
$result[$key] = $val[0];
}
}
$resultArr[] = $result;
} return $resultArr;
} /
- Convert domain name test.xlinesoft.com
- return DC=test,DC=xlinesoft,DC=com
/
function ldap_DomainToDN($aDomain){
$arrDomain = explode(".",$aDomain);
for ($i=0;$i<sizeof($arrDomain);$i++){
$arrDomain[$i] = "dc=".$arrDomain[$i];
}
return implode(',',$arrDomain);
} function runner_ldap_unbind(){
ldap_unbind($this->ldapconn);
}
function ldap_error(){
return ldap_err2str(ldap_errno($this->ldapconn));
}
//function for Active Directory
/
- This function retrieves and returns CN from given DN
- $dn = CN=Users,CN=Builtin,DC=test,DC=xlinesoft,DC=com
- return Users
/
function ldap_getCN($dn) {
preg_match('/[^,]/', $dn, $matchs, PREG_OFFSET_CAPTURE, 3);
return $matchs[0][0];
} /*
- This function searchs in LDAP tree ($ad -LDAP link identifier)
- entry specified by samaccountname and returns its DN or epmty
- string on failure.
- $samaccountname = Users
- $basedn = DC=test,DC=xlinesoft,DC=com
- return CN=Users,CN=Builtin,DC=test,DC=xlinesoft,DC=com
*/
function ldap_getDN($ad, $samaccountname, $basedn) {
$attributes = array('dn');
$result = ldap_search($ad, $basedn,
"(samaccountname={$samaccountname})", $attributes);
if ($result === FALSE) { return ''; }
$entries = ldap_get_entries($ad, $result);
if ($entries['count']>0) { return $entries[0]['dn']; }
else { return ''; };
} function getGroupSid($userSid, $primaryGroupId)
{
$tgroup = bin2hex(substr($userSid,0, strlen($userSid)-4));
$group="";
for($i = 0; $i<strlen($tgroup); $i += 2)
{
$group .= '\\'.substr($tgroup,$i,2);
}
$group .= sprintf("\\%02x",$primaryGroupId & 255);
$group .= sprintf("\\%02x",($primaryGroupId >>8) & 255);
$group .= sprintf("\\%02x",($primaryGroupId >>16) & 255);
$group .= sprintf("\\%02x",($primaryGroupId >>24) & 255);
return $group;
}
}
|
|