For those of you that are having trouble when user's password has special characters, make sure you decode the string to an appropiate codification. For instance, I had an issue where some users could not logging properly into our web app.
Example of a simple connection:
<?php
$ldap_ip = 'LDAP-SERVER-IP';
$ldap = ldap_connect($ldap_ip);
$user = 'Test';
$password = 'otoño'; //This password is correct but binding it with this format will give us an error
$password = utf8_decode($password); //$password = otoxF1o
$ldap_bind = ldap_bind($ldap, $user, $password); //Now the binding is successfull and $ldap_bind = true
?>