|
ldap_set_option
Set the value of the given option
(PHP 4 >= 4.0.4, PHP 5)
Example 1123. Set protocol version<?php Example 1124. Set server controls<?php Code Examples / Notes » ldap_set_optionjohn dot hallam
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); technosophos
The following flags are valid integer values for the LDAP_OPT_DEREF (as taken from the documentation for ldap_read()): LDAP_DEREF_NEVER (int 0) - (default) aliases are never dereferenced. LDAP_DEREF_SEARCHING (int 1) - aliases should be dereferenced during the search but not when locating the base object of the search. LDAP_DEREF_FINDING (int 2) - aliases should be dereferenced when locating the base object but not during the search. LDAP_DEREF_ALWAYS (int 3) - aliases should be dereferenced always. Example: <?php ldap_set_option($ds, LDAP_OPT_DEREF, LDAP_DEREF_ALWAYS); ?> These are defined in the draft C API (presumably from the original LDAP API). See draft-ietf-ldapext-ldap-c-api-xx.txt included in the OpenLDAP source code distribution. hansfn
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
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
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 |
Change Languageldap_8859_to_t61 ldap_add ldap_bind ldap_close ldap_compare ldap_connect ldap_count_entries ldap_delete ldap_dn2ufn ldap_err2str ldap_errno ldap_error ldap_explode_dn ldap_first_attribute ldap_first_entry ldap_first_reference ldap_free_result ldap_get_attributes ldap_get_dn ldap_get_entries ldap_get_option ldap_get_values_len ldap_get_values ldap_list ldap_mod_add ldap_mod_del ldap_mod_replace ldap_modify ldap_next_attribute ldap_next_entry ldap_next_reference ldap_parse_reference ldap_parse_result ldap_read ldap_rename ldap_sasl_bind ldap_search ldap_set_option ldap_set_rebind_proc ldap_sort ldap_start_tls ldap_t61_to_8859 ldap_unbind |