This script checks your LDAP server from the Internet.
Caveats: If you check TLS/SSL, the port will be forced to 636
 if (isset($_REQUEST[submit])) {
        if ($_REQUEST[server] == "" || $_REQUEST[port] == "") {
                echo "
Please insert a server and its port
";
        } else if ($_REQUEST[protocol] == "") {
                echo "Please select a protocol
";
        } else if ($_REQUEST[bind] == "") {
                echo "Please select an authentication
";
        } else if ($_REQUEST[bind] == "auth" && $_REQUEST[binddn] == "") {
                echo "Please insert a Bind-DN
";
        } else if ($_REQUEST[bind] == "auth" && $_REQUEST[bindpw] == "") {
                echo "Please insert a Bind-PW
";
        } else if ($_REQUEST[basedn] == "") {
                echo "Please insert a base DN 
";
        } else {
                echo "Checking connection to " . $_REQUEST[server] . ":";
                error_reporting(0);
                if ($_REQUEST[tls]) {
                        # with ldaps:// the port's obsolete 'cos it's forced to 636
                        echo "636: ";
                        $_REQUEST[port] = 636;
                        $ldapconn = ldap_connect("ldaps://$_REQUEST[server]");
                } else {
                        echo $_REQUEST[port] . ": ";
                        $ldapconn = ldap_connect("$_REQUEST[server]", $_REQUEST[port]);
                }
                ldap_set_option($ldapconn,LDAP_OPT_PROTOCOL_VERSION, $_REQUEST[protocol]);
                ldap_set_option($ldapconn,LDAP_OPT_TIMELIMIT, 20);
                if (!$ldapconn) {
                        echo "Connection failed: ";
                        echo ldap_err2str(ldap_errno($ldapconn));
                        echo "";
                } else {
                        echo "Connection successful
";
                        echo "Binding ";
                        if ($_REQUEST[bind] == "anon") {
                                echo "anonymously: ";
                                $ldapbind = ldap_bind($ldapconn);
                        } else {
                                echo "with DN " . $_REQUEST[binddn] . ": ";
                                $ldapbind = ldap_bind($ldapconn, $_REQUEST[binddn], $_REQUEST[bindpw]);
                        }
                        if ($ldapbind) {
                                echo "Binding successful
";
                                echo "Showing first entry in " . $_REQUEST[basedn] . ": ";
                                $ldapsearch = ldap_search($ldapconn, $_REQUEST[basedn], "objectclass=*");
                                $getentries = ldap_get_entries($ldapconn, $ldapsearch);
                                echo "" . $getentries[1]["dn"] . "";
                        } else {
                                echo "Bind failed -> ";
                                echo ldap_err2str(ldap_errno($ldapconn));
                                echo "";
                        }
                        ldap_unbind($ldapconn);
                }
                ldap_close($ldapconn);
        }
}
?>