返回顶部
首页 > PHP中ldap_add_ext 什么意思?如何使用?
  • 27
分享到

PHP中ldap_add_ext 什么意思?如何使用?

2024年02月29日 27人浏览 编程网

摘要

ldap_add_ext 函数在 LDAP 服务器中添加一个新的条目。它与 ldap_add 函数类似,但提供了更多选项和控制。

详细说明

语法

int ldap_add_ext(LDAPConnection $ldap, string $dn, array $entry, array &$controls = [], int &$msgid = null)

参数

  • $ldap:指向 LDAP 连接的 LDAPConnection 对象。
  • $dn:要添加的新条目的 distinguished name (DN)。
  • $entry:一个包含要添加到新条目中的属性和值的对照组。
  • &$controls:一个包含要发送到服务器的 LDAP 控件的对照组,例如 LDAP_CONTROL_ASSERT。
  • &$msgid:一个引用,其中存储了 LDAP 操作的消息 ID。

返回值

成功时返回 LDAP_SUCCESS,失败时返回一个 LDAP 错误代码。

用法

使用 ldap_add_ext 函数向 LDAP 服务器添加一个新条目:

$ldap = ldap_connect("ldap.example.com");
ldap_bind($ldap);

$dn = "cn=John Doe,dc=example,dc=com";
$entry = [
    "objectclass" => ["person"],
    "cn" => ["John Doe"],
    "sn" => ["Doe"]
];

$result = ldap_add_ext($ldap, $dn, $entry);

if ($result === LDAP_SUCCESS) {
    echo "New entry added successfully.";
} else {
    echo "Failed to add new entry: " . ldap_error($ldap);
}

选项和控制

  • LDAP_OPT_PROTOCOL_VERSION:指定要使用的 LDAP 协议版本,例如 LDAP_VERSION3。
  • LDAP_OPT_REFERRALS:控制是否自动遵循服务器引荐。
  • LDAP_CONTROL_ASSERT:断言添加操作应失败,除非满足某些条件,例如特定值必须存在。

示例:使用 LDAP_CONTROL_ASSERT 控制

此示例使用 LDAP_CONTROL_ASSERT 控制来确保在添加新条目之前,不会存在具有相同 DN 的条目:

$ldap = ldap_connect("ldap.example.com");
ldap_bind($ldap);

$dn = "cn=John Doe,dc=example,dc=com";
$entry = [
    "objectclass" => ["person"],
    "cn" => ["John Doe"],
    "sn" => ["Doe"]
];

$control = ldap_control_create(LDAP_CONTROL_ASSERT, "presence=cn", true);
$controls = [$control];

$result = ldap_add_ext($ldap, $dn, $entry, $controls);

if ($result === LDAP_SUCCESS) {
    echo "New entry added successfully.";
} else {
    echo "Failed to add new entry: " . ldap_error($ldap);
}

注意事项

  • 如果要添加的条目具有与现有条目相同的 DN,则 ldap_add_ext 函数将失败。
  • 如果不确定要添加的条目是否已存在,可以使用 ldap_search 函数进行检查。
  • 在使用 ldap_add_ext 函数之前,必须先使用 ldap_bind 函数绑定到 LDAP 服务器。
  • 如果 LDAP 操作失败,可以使用 ldap_errno 和 ldap_error 函数获取错误代码和消息。

以上就是PHP中ldap_add_ext 什么意思?如何使用?的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: PHP中ldap_add_ext 什么意思?如何使用?

本文链接: https://www.lsjlt.com/wiki/80225bb398.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作