<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.ldap-add" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>ldap_add</refname>
  <refpurpose>Add entries to LDAP directory</refpurpose>
 </refnamediv>

 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>ldap_add</methodname>
   <methodparam><type>LDAP\Connection</type><parameter>ldap</parameter></methodparam>
   <methodparam><type>string</type><parameter>dn</parameter></methodparam>
   <methodparam><type>array</type><parameter>entry</parameter></methodparam>
   <methodparam choice="opt"><type class="union"><type>array</type><type>null</type></type><parameter>controls</parameter><initializer>&null;</initializer></methodparam>
  </methodsynopsis>
  <para>
   Add entries in the LDAP directory.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>ldap</parameter></term>
     <listitem>
      <para>
       &ldap.parameter.ldap;
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>dn</parameter></term>
     <listitem>
      <para>
       The distinguished name of an LDAP entity.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>entry</parameter></term>
     <listitem>
      <para>
       An array that specifies the information about the entry. The values in
       the entries are indexed by individual attributes.
       In case of multiple values for an attribute, they are indexed using
       integers starting with 0.
       <informalexample>
        <programlisting role="php">
     <![CDATA[
<?php
$entry["attribute1"] = "value";
$entry["attribute2"][0] = "value1";
$entry["attribute2"][1] = "value2";
?>
     ]]>
        </programlisting>
       </informalexample>
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>controls</parameter></term>
     <listitem>
      <para>
       Array of <link linkend="ldap.controls">LDAP Controls</link> to send with the request.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>

 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success;
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <para>
   <informaltable>
    <tgroup cols="2">
     <thead>
      <row>
       <entry>&Version;</entry>
       <entry>&Description;</entry>
      </row>
     </thead>
     <tbody>
      &ldap.changelog.ldap-object;
      &ldap.changelog.controls-nullable;
      <row>
       <entry>7.3.0</entry>
       <entry>
        Support for <parameter>controls</parameter> added
       </entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Complete example with authenticated bind</title>
    <programlisting role="php">
<![CDATA[
<?php
$ds = ldap_connect("localhost");  // assuming the LDAP server is on this host

if ($ds) {
    // bind with appropriate dn to give update access
    $r = ldap_bind($ds, "cn=root, o=My Company, c=US", "secret");

    // prepare data
    $info["cn"] = "John Jones";
    $info["sn"] = "Jones";
    $info["objectclass"] = "person";

    // add data to directory
    $r = ldap_add($ds, "cn=John Jones, o=My Company, c=US", $info);

    ldap_close($ds);
} else {
    echo "Unable to connect to LDAP server";
}
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="notes">
  &reftitle.notes;
  &note.bin-safe;
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>ldap_add_ext</function></member>
    <member><function>ldap_delete</function></member>
   </simplelist>
  </para>
 </refsect1>

</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
