Results 1 to 7 of 7

Thread: PHP LDAP Address/Phone Book

  1. #1
    phxmark is offline Junior Member
    Join Date
    May 2006
    Posts
    9
    Rep Power
    9

    Default PHP LDAP Address/Phone Book

    Has anyone successfully developed a PHP script to do an LDAP query to Zimbra OpenLDAP? We would like to use our Zimbra Server as the the main Address/Phonebook for our district. If you have, can you please send me the PHP scripts?

    I found one online, but I am unable to make it work. I have very limited PHP knowledge.

    Thanks,
    Mark

  2. #2
    jholder's Avatar
    jholder is offline Former Zimbran
    Join Date
    Oct 2005
    Location
    Thatcher, AZ
    Posts
    5,606
    Rep Power
    20

    Default

    Hi phxmark, and welcome.

    We hope you enjoy the forums. As a note, please do not cross post in forums. As you can tell, we have a lot of posts. Because of this, we try to keep the level of confusion down when users search the forums.

    I have removed your other post in the admin forum as it was a duplicate with this post.

    Also, I have not heard anything thing on an LDAP Address book. I have an address book that runs on ASP that accesses an sql database, but it is in no way tied into zimbra.

    Good luck!
    john

  3. #3
    phxmark is offline Junior Member
    Join Date
    May 2006
    Posts
    9
    Rep Power
    9

    Default PHP LDAP Address/Phonebook

    OK. I have put together something that works. It is a work in progress, but it is close to doing what I want. It is a mish-mash of other PHP scripts found on the Internet.

    The only issue I am having with it is that I cannot search by Site(Company) attribute. All else works.

    This is programmed under PHP 5 and Apache Server.

    pbform.html:

    <html>
    <head>
    <title>Search</title>
    </head>
    <body>
    <form action="search.php" method="POST">
    First name
    <br>
    <input type="text" name="gn" length="30" value="*"><br>
    Last name
    <br>
    <input type="text" name="sn" length="30" value="*"><br>
    Email address
    <br>
    <input type="text" name="email" length="30" value="*"><br>
    Site
    <br>
    <input type="text" name="comp" length="30" value="*"><br>
    <br>
    <input type="submit" name="submit" value="Search">
    </form>
    </body>
    </html>

    search.php:

    <html>
    <head>
    </head>
    <body>

    <table width="500" cellpadding="5" cellspacing="5" border="1">

    <?php

    // specify the LDAP server to connect to
    $conn = ldap_connect("yourzimbraserver.domain.com") or die("Could not connect to server");
    ldap_set_option($conn, LDAP_OPT_PROTOCOL_VERSION, 3);

    // bind to the LDAP server specified above
    $r = ldap_bind($conn) or die("Could not bind to server");

    // create the search string
    $query = "(&(givenname=" . $_POST['gn'] . ")(sn=" . $_POST['sn'] . ")(mail=" . $_POST['email'] . ")(company=" . $_POST['comp'] . "))";

    echo $query;

    // start searching
    // specify both the start location and the search criteria
    // in this case, start at the top and return all entries
    $result = ldap_search($conn,"dc=domain,dc=com", $query) or die("Error in search query");

    // get entry data as array
    $info = ldap_get_entries($conn, $result);

    ?>

    <tr>
    <td>Last Name</td>
    <td>First Name</td>
    <td>E-Mail Address</td>
    <td>Site</td>
    <td>Room</td>
    <td>Phone</td>
    <tf colspan=6>&nbsp;</td>
    </tr>

    <?php

    // Sort Data by Company, Last Name and First Name
    $attribs = array('company','sn','givenname');

    for ($i=0; $i<$info["count"]; $i++)
    {
    $index = $info[$i];
    $j=$i;
    do {
    //create comparison variables from attributes:
    $a = $b = null;
    foreach($attribs as $attrib){
    $a .= $info[$j-1][$attrib][0];
    $b .= $index[$attrib][0];
    }
    // do the comparison
    if ($a > $b){
    $is_greater = true;
    $info[$j] = $info[$j-1];
    $j = $j-1;
    }else{
    $is_greater = false;
    }
    } while ($j>0 && $is_greater);

    $info[$j] = $index;
    }

    // iterate over array and print data for each entry
    echo "<ul>";
    for ($i=0; $i<$info["count"]; $i++)
    {
    echo "<tr>";
    echo "<td>".$info[$i]["sn"][0]."</td>";
    echo "<td>".$info[$i]["givenname"][0]."</td>";
    echo "<td>".$info[$i]["mail"][0]."</td>";
    echo "<td>".$info[$i]["company"][0]."</td>";
    echo "<td>".$info[$i]["physicaldeliveryofficename"][0]."</td>";
    echo "<td>".$info[$i]["telephonenumber"][0]."</td>";
    echo "</tr>";
    }

    // print number of entries found
    echo "Number of entries found: " . ldap_count_entries($conn, $result) . "<p>";

    // all done? clean up
    ldap_close($conn);

    ?>

    </table>
    </body>
    </html>

  4. #4
    geodrive is offline Starter Member
    Join Date
    May 2006
    Posts
    1
    Rep Power
    9

    Default What about the phpldapadmin project?

    http://phpldapadmin.sourceforge.net/download.php

    Probably not nescessary to reinvent the wheel, or wont this work toward zimbra?

  5. #5
    phxmark is offline Junior Member
    Join Date
    May 2006
    Posts
    9
    Rep Power
    9

    Default

    This does work on Zimbra. I used it to help me with the script I am working on.

  6. #6
    maumar is offline Elite Member
    Join Date
    Mar 2007
    Location
    Small village in the center of Italy
    Posts
    348
    Rep Power
    8

    Default

    this php script does work form me, but what i get are the mail accounts; i would get contacts but i dunno how can get them

    i would use a ph script to feed aastra phones like you can find here

  7. #7
    UMDjwain is offline Trained Alumni
    Join Date
    Nov 2008
    Location
    Ann Arbor, MI
    Posts
    46
    Rep Power
    6

    Default

    What I'd like to see is a Zimlet that does the hover over lookups like the date zimlet- plugging that into the VOIP or other zimlets would be cool as well.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Zimbra Install Problem - getDirectContext
    By bsimzer in forum Installation
    Replies: 27
    Last Post: 07-19-2007, 10:12 AM
  2. 3 testing: LDAP: 389 Failed when restore zimbra
    By victorLeong in forum Administrators
    Replies: 15
    Last Post: 05-24-2007, 06:45 AM
  3. Mac OSX install: Java errors & LDAP CA error
    By jefbear in forum Installation
    Replies: 9
    Last Post: 12-16-2006, 03:39 PM
  4. Replies: 4
    Last Post: 11-15-2006, 12:16 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •