RE: LDAP Query

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



For anyone interested: after some furhter troubleshooting, I found the error.  The password I was passing was incorrect.  What I found interesting is that even though the password was incorrect, the bind function still worked.  I'm thinking that it logged me in as anonymous at that stage.

>Our organization is migrating away from Novell E-directory to MS Active 
>Directory.  I have a php class that allows me to run various queries on our 
>e-directory ldap server which I am working to convert to AD.  However, I'm 
>running into an error that i cannot figure out.  I have updated the base_dn to 
>point tothe correct location (verified by a third party ldap browser).  Also 
>added a username and password since our AD environment doesn't allow anonymous 
>queries.  The error I get is 
>
>Warning: ldap_search() [function.ldap-search]: Search: Operations error in 
>/var/www/html/intranet/_php/class.ldap_test.php on line 149
>
>On that line I have this line of code
>$result = ldap_search($this->conn,$this->base_dn,$filter);
>
>Where $this->conn evaluates to Resource id #3, $this->base_dn is the correct 
>dn (ou=something,dc=domain,dc=domain_part_2) and $filter is cn=myusername
>
>Can anyone shed some light on this?  Below is the entire method from the 
>class.
>
>	function connectldap($filter,$override=false) {
>		//connect to the server
>		$this->conn = ldap_connect($this->server);
>		
>		//if the connection failed, set the error message
>		//and return false
>		if(!$this->conn) {
>			$this->errMsg[] = "Unable to connect to server\n";
>			return false;
>		}
>		//ldap_set_option($this->conn, LDAP_OPT_PROTOCOL_VERSION, 3);
>		//bind the connection.  This function will perform an
>		//anonymous query to get the full 
>		$bind = @ldap_bind($this->conn,$this->ldap_user,$ldap_passwd);
>		if(!$bind) {
>			$this->errMsg[] =  "Unable to bind to server\n";
>			return false;
>		}
>		echo "<p>$filter - " . $this->conn . " - " . $bind . " - " . $this->base_dn 
>. "</p>\n";
>		//run the ldap query
>		$result = ldap_search($this->conn,$this->base_dn,$filter);
>		//if the search failed, then return false and set the error message
>		if(!$result) {
>			$this->errMsg[] =  "Search failed - " . ldap_error($this->conn) . "\n";
>			return false;
>		}
>		//get the entries and store them in a variable
>		$info=ldap_get_entries($this->conn,$result);
>		
>		//if the number of entries reutnred is zero, then the user
>		//could not be found in the ldap server
>		if($info["count"] == 0) {
>			$this->errMsg[] =  "User Unknown\n";
>			return false;
>		}
>		//otherwise, if the number of entries found is greater than 1, then
>		//more than one object was found.
>		elseif($info["count"]>1 && !$override) {
>			$this->errMsg[] =  "There was more than one user found\n";
>			return false;
>		}
>		else {
>			return $info;
>		}
>	}
>
>Thank you,
>Robbert van Andel
>
>-- 
>PHP General Mailing List (http://www.php.net/)
>To unsubscribe, visit: http://www.php.net/unsub.php
>

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux