Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
PHP: ldap_set_option - Manual
[go: Go Back, main page]

PHP  
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  
<ldap_searchldap_set_rebind_proc" width="11" height="7"/>
view the version of this page
Last updated: Thu, 26 May 2005

ldap_set_option

(PHP 4 >= 4.0.4, PHP 5)

ldap_set_option -- 指定したオプションの値を設定する

説明

bool ldap_set_option ( int link_identifier, int option, mixed newval )

指定したオプションの値を newval に設定し、 成功時にTRUE、エラーの場合にFALSEを返します。

パラメータ option は次のどれかになります。 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 以下に簡単に説明しますが、詳細については、 draft-ietf-ldapext-ldap-c-api-xx.txtを参照ください。

オプション 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 はコントロー ルのリストを必要とします。これは、値がコントロールの配列である必 要があることを意味します。コントロールは、そのコントロールのIDで ある oid、オプションの value、オプションのフラグ criticality からなります。PHPにおいてコント ロールは、キーが oid で値が文字列、二つのオ プションの要素からなる配列で指定されます。オプションの要素は、キー が value で値が文字列、キーが iscritical で値が論理値です。 iscritical が指定されない場合のデフォルト値 は FALSE です。以下の2番目の例も参照ください。

この関数は、OpenLDAP 2.x.x または Netscape Directory SDK x.x を使 用している場合のみ利用可能で、PHP 4.0.4で追加されました。

例 1. プロトコルバージョンを設定する

// $ds はディレクトリサーバーへの有効なリンクIDです
if (ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3))
   echo "LDAPv3 を使用します";
else
   echo "プロトコルバージョンを 3 に設定できませんでした";

例 2. サーバコントロールを設定する

// $ds は値を持たないディレクトリサーバコントロールへの有効なリンクID
// です。
$ctrl1 = array("oid" => "1.2.752.58.10.1", "iscritical" => TRUE);
// iscritical のデフォルトは、FALSE です。
$ctrl2 = array("oid" => "1.2.752.58.1.10", "value" => "magic");
// 両方のコントロールを試す
if (!ldap_set_option($ds, LDAP_OPT_SERVER_CONTROLS, array($ctrl1, $ctrl2)))
   echo "サーバコントロールの設定に失敗しました。";

ldap_get_option() も参照ください。



add a note add a note User Contributed Notes
ldap_set_option
minusf at gmail dot com
31-Oct-2005 06: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
27-Feb-2002 08: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
29-Jan-2002 03: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);

<ldap_searchldap_set_rebind_proc" width="11" height="7"/>
 Last updated: Thu, 26 May 2005
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This mirror generously provided by: PacketBusiness, Inc.
Last updated: Wed Nov 2 21:26:57 2005 JST