I will login to the site when I get some more time and post examples - I&#39;ll have to de-API the code and make it more basic....   :) <br><br>function ldapConnect($type = false,$server = false) {
<br>// type can be &#39;admin&#39; or &#39;user&#39;, function returns a connection object.
<br>// pass a name of a server string if you prefer a server to connect to.
<br>if(!is_callable(&#39;ldap_connect&#39;)) return false; <br>$connected = false;
<br>$tries = 0;
<br>while (!$connected) {
<br>  $tries++;
<br>  if(!empty($server)) {$lastId = $server[&#39;entry_id&#39;];}
<br>  else { $lastId = false; }
<br>  $server = ldapServerArray(false,$server,$lastId);
<br>  @$ldapConn = ldap_connect($server[&#39;host&#39;]);
<br>  @ldap_set_option($ldapConn, LDAP_OPT_TIMELIMIT, DEFAULT_LDAP_QUERY_TIMEOUT);
<br>  @ldap_set_option($ldapConn, LDAP_OPT_NETWORK_TIMEOUT, DEFAULT_LDAP_TIMEOUT);
<br>  @ldap_set_option($ldapConn, LDAP_OPT_PROTOCOL_VERSION, 3);
<br>  @ldap_set_option($ldapConn, LDAP_OPT_REFERRALS, 0);
<br>  if($type == &quot;admin&quot;) {
<br>    $user = $server[&#39;admin_name&#39;]; 
<br>    $pass = $server[&#39;admin_pass&#39;];
<br>  }
<br>  else {$user=$server[&#39;user_name&#39;]; $pass=$server[&#39;user_pass&#39;];}
<br>  if(@$ldapBind = ldap_bind($ldapConn,$user . &#39;@&#39; . $server[&#39;domain&#39;],$pass)) {
<br>    $connected = true;
<br>  }
<br>  elseif($tries &gt;= SITE_LDAP_CONNECT_ATTEMPTS) { return false; } // if we have tried LDAP_MAX_CONNECTION_ATTEMPTS times to bind, quit - and stop hassling the Ldap Server
<br>  else { ldap_close($ldapConn); }
<br>}
<br>  return $ldapConn;
<br>}<br><br><div class="gmail_quote">On Thu, Jul 2, 2009 at 9:52 PM, Michael Mol <span dir="ltr">&lt;<a href="mailto:mikemol@gmail.com">mikemol@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On Thu, Jul 2, 2009 at 9:47 PM, Ben DeMott&lt;<a href="mailto:ben.demott@gmail.com">ben.demott@gmail.com</a>&gt; wrote:<br>
&gt; Oh yeah, if that&#39;s what you are looking for I wrote a whole PHP api to do<br>
&gt; common AD stuff like:<br>
&gt; BaseSearchDn = (your DN)<br>
&gt; function: adUserExists()<br>
&gt; function: adGroupExists()<br>
&gt; function: adIsGroupMember()<br>
&gt;<br>
&gt; calculating the AD password reset time,<br>
&gt; and converting the AD LDAP fields into COMMON ldap fields - oh the memories<br>
&gt; :)<br>
&gt;<br>
&gt; ... and LDAP (ad) API will actually come with OpenLEAF - but thats another<br>
&gt; story.<br>
&gt;<br>
&gt; I will round up some examples for ya :)<br>
<br>
</div>Feel free to create an account on the site, or even edit anonymously;<br>
It&#39;s an open-edit wiki. :-)<br>
<font color="#888888"><br>
<br>
--<br>
</font><div><div></div><div class="h5">:wq<br>
_______________________________________________<br>
grlug mailing list<br>
<a href="mailto:grlug@grlug.org">grlug@grlug.org</a><br>
<a href="http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug" target="_blank">http://shinobu.grlug.org/cgi-bin/mailman/listinfo/grlug</a><br>
</div></div></blockquote></div><br>