|
 |
ldap_set_option (PHP 4 >= 4.0.4, PHP 5) ldap_set_option -- Set the value of the given option Descriptionbool ldap_set_option ( resource link_identifier, int option, mixed newval )
Sets the value of the specified option to be
newval. Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
on error.
The parameter option can be one of:
LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT,
LDAP_OPT_PROTOCOL_VERSION, LDAP_OPT_ERROR_NUMBER, LDAP_OPT_REFERRALS,
LDAP_OPT_RESTART, LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING,
LDAP_OPT_MATCHED_DN, LDAP_OPT_SERVER_CONTROLS, LDAP_OPT_CLIENT_CONTROLS.
Here's a brief description, see
draft-ietf-ldapext-ldap-c-api-xx.txt for details.
The options LDAP_OPT_DEREF, LDAP_OPT_SIZELIMIT, LDAP_OPT_TIMELIMIT,
LDAP_OPT_PROTOCOL_VERSION and LDAP_OPT_ERROR_NUMBER have integer value,
LDAP_OPT_REFERRALS and LDAP_OPT_RESTART have boolean value, and the
options LDAP_OPT_HOST_NAME, LDAP_OPT_ERROR_STRING and LDAP_OPT_MATCHED_DN
have string value. The first example illustrates their use. The options
LDAP_OPT_SERVER_CONTROLS and LDAP_OPT_CLIENT_CONTROLS require a list of
controls, this means that the value must be an array of controls. A
control consists of an oid identifying the control,
an optional value, and an optional flag for
criticality. In PHP a control is given by an
array containing an element with the key oid
and string value, and two optional elements. The optional
elements are key value with string value
and key iscritical with boolean value.
iscritical defaults to FALSE
if not supplied. See also the second example below.
Замечание:
This function is only available when using
OpenLDAP 2.x.x OR Netscape Directory SDK x.x, and was
added in PHP 4.0.4.
Пример 1. Set protocol version
<?php
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) {
echo "Using LDAPv3";
} else {
echo "Failed to set protocol version to 3";
}
?>
|
|
Пример 2. Set server controls
<?php
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => true);
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
echo "Failed to set server controls";
?>
|
|
See also ldap_get_option().
ldap_set_option
hansfn at gmail dot com
23-May-2006 04:23
Luckily you can turn on debugging before you open a connection:
ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
This way you at least can see in the logs if the connection fails...
minusf at gmail dot com
31-Oct-2005 01:59
it seems that ldap_set_option returns 1 for bogus ldap_connect -ions also.
ldap_connect always returns a resource (documented in the
comments of ldap_connect) so it is not possible to check if the
ldap server is there or alive or what. and because ldap_set_option
must be between ldap_connect and ldap_bind, there seems to
be no sense in checking the return value.
it is a bit strange that ldap_bind is the first function which can
really check if a ldap resource is usable because it is the third
function in line to use when working with openldap.
<?php
$connect = ldap_connect("whatever");
$set = ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
echo $set;
?>
soulbros at yahoo dot com
26-Feb-2002 03:56
As john.hallam@compaq.com above mentioned ,one has to set option LDAP_OPT_PROTOCOL_VERSION=3
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
to use the ldap_rename function.
However, the ldap_set_option() line has to be written immediately after ldap_connect() and before ldap_bind() statements.
Christos Soulios
john dot hallam at compaq dot com
28-Jan-2002 10:00
To get this to work I had to set the LDAP version to 3 using ldap_set_option. Here is an example that might help:
$TheDN = "cn=john smith,ou=users,dc=acme,dc=com";
$newRDN = "cn=bill brown";
$newParent = "ou=users,dc=acme,dc=com";
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
@$result = ldap_rename($ds, $TheDN, $newRDN, $newParent, TRUE);
| |