From 979ed852e4960e382813991410d5cc39b756023a Mon Sep 17 00:00:00 2001 From: Hannes Magnusson Date: Sun, 23 Dec 2007 20:56:25 +0000 Subject: [PATCH] MFB: Upgrade to the new-reference-structure - (Created missing setup sections in setup.xml, if any) - Moved the intro to book.xml - Changed the intro ID from .intro to intro. - Moved the constants entity to book.xml - changed constants.xml to be an appendix - Moevd the examples into its own chapter NOTE: The chapter ID is 'ldap.examples', the first ID is 'ldap.examples-basic' - Moved the requirements and resources sections to setup.xml - Moved the configure and ini entities to setup.xml - Moved the 'ldap.using' section into its own chapter (using.xml) git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@248858 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/ldap/book.xml | 118 ++++++++++++++++++ reference/ldap/constants.xml | 6 +- reference/ldap/examples.xml | 82 +++++++++++++ reference/ldap/reference.xml | 230 +---------------------------------- reference/ldap/setup.xml | 72 +++++++++++ reference/ldap/using.xml | 68 +++++++++++ 6 files changed, 349 insertions(+), 227 deletions(-) create mode 100644 reference/ldap/book.xml create mode 100644 reference/ldap/examples.xml create mode 100644 reference/ldap/setup.xml create mode 100644 reference/ldap/using.xml diff --git a/reference/ldap/book.xml b/reference/ldap/book.xml new file mode 100644 index 0000000000..8ca916c8b6 --- /dev/null +++ b/reference/ldap/book.xml @@ -0,0 +1,118 @@ + + + + + + + LDAP + + + + &reftitle.intro; + + LDAP is the Lightweight Directory Access Protocol, and is a + protocol used to access "Directory Servers". The Directory is a + special kind of database that holds information in a tree + structure. + + + The concept is similar to your hard disk directory structure, + except that in this context, the root directory is "The world" + and the first level subdirectories are "countries". Lower levels + of the directory structure contain entries for companies, + organisations or places, while yet lower still we find directory + entries for people, and perhaps equipment or documents. + + + To refer to a file in a subdirectory on your hard disk, you might + use something like: + + + /usr/local/myapp/docs + + + The forwards slash marks each division in the reference, and the + sequence is read from left to right. + + + The equivalent to the fully qualified file reference in LDAP is + the "distinguished name", referred to simply as "dn". An example + dn might be: + + + cn=John Smith,ou=Accounts,o=My Company,c=US + + + The comma marks each division in the reference, and the sequence + is read from right to left. You would read this dn as: + + + country = US + organization = My Company + organizationalUnit = Accounts + commonName = John Smith + + + In the same way as there are no hard rules about how you organise + the directory structure of a hard disk, a directory server + manager can set up any structure that is meaningful for the + purpose. However, there are some conventions that are used. The + message is that you can not write code to access a directory + server unless you know something about its structure, any more + than you can use a database without some knowledge of what is + available. + + + Lots of information about LDAP can be found at + + + + + + Mozilla + + + + + OpenLDAP Project + + + + + + The Netscape SDK contains a helpful + Programmer's Guide in + HTML format. + + + + + &reference.ldap.setup; + &reference.ldap.constants; + &reference.ldap.using; + &reference.ldap.examples; + &reference.ldap.reference; + + + + + diff --git a/reference/ldap/constants.xml b/reference/ldap/constants.xml index f1b643fb8b..324a402460 100644 --- a/reference/ldap/constants.xml +++ b/reference/ldap/constants.xml @@ -1,6 +1,6 @@ - -
+ + &reftitle.constants; &extension.constants; @@ -239,7 +239,7 @@ -
+ + + + &reftitle.examples; +
+ + Retrieve information for all entries where the surname starts + with "S" from a directory server, displaying an extract with + name and email address. + + + + LDAP search example + +LDAP query test"; +echo "Connecting ..."; +$ds=ldap_connect("localhost"); // must be a valid LDAP server! +echo "connect result is " . $ds . "
"; + +if ($ds) { + echo "Binding ..."; + $r=ldap_bind($ds); // this is an "anonymous" bind, typically + // read-only access + echo "Bind result is " . $r . "
"; + + echo "Searching for (sn=S*) ..."; + // Search surname entry + $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*"); + echo "Search result is " . $sr . "
"; + + echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "
"; + + echo "Getting entries ...

"; + $info = ldap_get_entries($ds, $sr); + echo "Data for " . $info["count"] . " items returned:

"; + + for ($i=0; $i<$info["count"]; $i++) { + echo "dn is: " . $info[$i]["dn"] . "
"; + echo "first cn entry is: " . $info[$i]["cn"][0] . "
"; + echo "first email entry is: " . $info[$i]["mail"][0] . "


"; + } + + echo "Closing connection"; + ldap_close($ds); + +} else { + echo "

Unable to connect to LDAP server

"; +} +?> +]]> +
+
+
+
+ + + diff --git a/reference/ldap/reference.xml b/reference/ldap/reference.xml index ad9c8596dc..29a6404189 100644 --- a/reference/ldap/reference.xml +++ b/reference/ldap/reference.xml @@ -1,230 +1,12 @@ - - - - + + - - LDAP Functions - LDAP + + LDAP &Functions; + &reference.ldap.entities.functions; - -
- &reftitle.intro; - - LDAP is the Lightweight Directory Access Protocol, and is a - protocol used to access "Directory Servers". The Directory is a - special kind of database that holds information in a tree - structure. - - - The concept is similar to your hard disk directory structure, - except that in this context, the root directory is "The world" - and the first level subdirectories are "countries". Lower levels - of the directory structure contain entries for companies, - organisations or places, while yet lower still we find directory - entries for people, and perhaps equipment or documents. - - - To refer to a file in a subdirectory on your hard disk, you might - use something like: - - - /usr/local/myapp/docs - - - The forwards slash marks each division in the reference, and the - sequence is read from left to right. - - - The equivalent to the fully qualified file reference in LDAP is - the "distinguished name", referred to simply as "dn". An example - dn might be: - - - cn=John Smith,ou=Accounts,o=My Company,c=US - - - The comma marks each division in the reference, and the sequence - is read from right to left. You would read this dn as: - - - country = US - organization = My Company - organizationalUnit = Accounts - commonName = John Smith - - - In the same way as there are no hard rules about how you organise - the directory structure of a hard disk, a directory server - manager can set up any structure that is meaningful for the - purpose. However, there are some conventions that are used. The - message is that you can not write code to access a directory - server unless you know something about its structure, any more - than you can use a database without some knowledge of what is - available. - - - Lots of information about LDAP can be found at - + - - - - Mozilla - - - - - OpenLDAP Project - - - - - - The Netscape SDK contains a helpful - Programmer's Guide in - HTML format. - -
- -
- &reftitle.required; - - You will need to get and compile LDAP client libraries from either - OpenLDAP or Bind9.net in order to compile PHP with - LDAP support. - - -
- - &reference.ldap.configure; - - &reference.ldap.ini; - -
- &reftitle.resources; - - Most LDAP functions operate on or return resources (e.g. - ldap_connect returns a positive LDAP link identifier - required by most LDAP functions). - -
- - &reference.ldap.constants; - -
- &reftitle.examples; - - Retrieve information for all entries where the surname starts - with "S" from a directory server, displaying an extract with - name and email address. - - - - LDAP search example - -LDAP query test"; -echo "Connecting ..."; -$ds=ldap_connect("localhost"); // must be a valid LDAP server! -echo "connect result is " . $ds . "
"; - -if ($ds) { - echo "Binding ..."; - $r=ldap_bind($ds); // this is an "anonymous" bind, typically - // read-only access - echo "Bind result is " . $r . "
"; - - echo "Searching for (sn=S*) ..."; - // Search surname entry - $sr=ldap_search($ds, "o=My Company, c=US", "sn=S*"); - echo "Search result is " . $sr . "
"; - - echo "Number of entires returned is " . ldap_count_entries($ds, $sr) . "
"; - - echo "Getting entries ...

"; - $info = ldap_get_entries($ds, $sr); - echo "Data for " . $info["count"] . " items returned:

"; - - for ($i=0; $i<$info["count"]; $i++) { - echo "dn is: " . $info[$i]["dn"] . "
"; - echo "first cn entry is: " . $info[$i]["cn"][0] . "
"; - echo "first email entry is: " . $info[$i]["mail"][0] . "


"; - } - - echo "Closing connection"; - ldap_close($ds); - -} else { - echo "

Unable to connect to LDAP server

"; -} -?> -]]> -
-
-
- -
- Using the PHP LDAP calls - - Before you can use the LDAP calls you will need to know .. - - - - - The name or address of the directory server you will use - - - - - The "base dn" of the server (the part of the world directory - that is held on this server, which could be "o=My - Company,c=US") - - - - - Whether you need a password to access the server (many servers - will provide read access for an "anonymous bind" but require a - password for anything else) - - - - - - The typical sequence of LDAP calls you will make in an - application will follow this pattern: - - ldap_connect() // establish connection to server - | - ldap_bind() // anonymous or authenticated "login" - | - do something like search or update the directory - and display the results - | - ldap_close() // "logout" - -
-
- -&reference.ldap.entities.functions; - -
+ + + &reftitle.setup; + + +
+ &reftitle.required; + + You will need to get and compile LDAP client libraries from either + OpenLDAP or Bind9.net in order to compile PHP with + LDAP support. + + +
+ + + + &reference.ldap.configure; + + + + &reference.ldap.ini; + + + +
+ &reftitle.resources; + + Most LDAP functions operate on or return resources (e.g. + ldap_connect returns a positive LDAP link identifier + required by most LDAP functions). + +
+ + +
+ + + diff --git a/reference/ldap/using.xml b/reference/ldap/using.xml new file mode 100644 index 0000000000..d2563bb5ef --- /dev/null +++ b/reference/ldap/using.xml @@ -0,0 +1,68 @@ + + + + + Using the PHP LDAP calls + + Before you can use the LDAP calls you will need to know .. + + + + The name or address of the directory server you will use + + + + + The "base dn" of the server (the part of the world directory + that is held on this server, which could be "o=My + Company,c=US") + + + + + Whether you need a password to access the server (many servers + will provide read access for an "anonymous bind" but require a + password for anything else) + + + + + + + The typical sequence of LDAP calls you will make in an + application will follow this pattern: + + ldap_connect() // establish connection to server + | + ldap_bind() // anonymous or authenticated "login" + | + do something like search or update the directory + and display the results + | + ldap_close() // "logout" + + + + + + +