Bug #15637 Updated: if using URI, ldap_connect() returns resource ID when server does not exist
| From: | mfischer@php.net | Date: | Wed, 20 Feb 2002 10:20:15 +0000 |
| Subject: | Bug #15637 Updated: if using URI, ldap_connect() returns resource ID when server does not exist | ||
| References: | 1 | Groups: | php.bugs php.doc |
| Request: | Send a blank email to php-bugs+get-646@lists.php.net to get a copy of this message | ||
ID: 15637
Updated by: mfischer@php.net
Reported By: cjm46543@hotmail.com
Status: Open
-Bug Type: LDAP related
+Bug Type: Documentation problem
Operating System: Linux - RedHat 7.2
PHP Version: 4.1.1
New Comment:
This is not an PHP/ldap bug but a documentation problem it seems to
me.
When using an URI to describe the connection, the (open)ldap library
only parses the url and checks if it's valid, _no connection_ is
established in that case.
Checking the return code of ldap_bind() would be the proper thing to do
anyway.
Previous Comments:
------------------------------------------------------------------------
[2002-02-19 20:05:48] cjm46543@hotmail.com
I'm running a very simple test script (see below) to test my ldap
server connection. According to the docs, ldap_connect() is supposed
to return an LDAP resource id on successful connect, or FALSE on error.
When I run the code with a valid server URI ($ds =
ldap_connect("ldap://ldap.example.com")), everything works fine. When
I run it with a URI to a nonexistent LDAP server ($ds =
ldap_connect("ldap://does.not.exist")), ldap_connect returns a resource
ID anyway, so my script has no way of knowing anything is wrong until I
try to bind or search. If I simply give a nonexistent hostname rather
than a URI ($ds = ldap_connect("does.not.exist")) the function returns
FALSE as documented.
I built PHP 4.1.1 against the client libraries from OpenLDAP 2.0.21.
Here's the full code of my test script:
<?php
$ds = ldap_connect("ldap://ldap.example.com/");
echo "connect result is ".$ds."<p>";
if($ds) {
$r=ldap_bind($ds);
echo "Bind result is ".$r."<p>";
$sr=ldap_search($ds, "ou=users,dc=example,dc=com", "uid=carljm");
echo "Search result is ".$sr."<p>";
echo "Number of entires returned is
".ldap_count_entries($ds,$sr)."<p>";
echo "Getting entries ...<p>";
$info = ldap_get_entries($ds, $sr);
echo "Data for ".$info["count"]." items returned:<p>";
for ($i=0; $i<$info["count"]; $i++) {
echo "dn is: ". $info[$i]["dn"] ."<br>";
echo "first cn entry is: ". $info[$i]["cn"][0] ."<br>";
echo "first uidNumber entry is: ". $info[$i]["uidnumber"][0]
."<p>";
}
echo "Closing connection";
ldap_close($ds);
?>
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=15637&edit=1