--- abook_ldap_server.php.orig 2008-02-11 01:49:47.000000000 +0900 +++ abook_ldap_server.php 2008-06-13 22:13:06.000000000 +0900 @@ -261,7 +261,7 @@ if(is_array($expr)) return false; /* Encode the expression */ - $expr = $this->charset_encode($expr); + /* $expr = $this->charset_encode($expr); */ /* * allow use of one asterisk in search. @@ -271,8 +271,9 @@ $expr = '*' . $this->ldapspecialchars($expr) . '*'; /* Undo sanitizing of * symbol */ $expr = str_replace('\2a','*',$expr); + $expr = mb_convert_encoding($expr, "UTF-8", "auto"); } - $expression = "cn=$expr"; + $expression = "(|(cn=$expr)(sn=$expr)(givenName=$expr)(mail=$expr))"; /* Make sure connection is there */ if(!$this->open()) { @@ -309,13 +310,12 @@ $nickname = $this->charset_decode($row['dn']); $fullname = $this->charset_decode($row['cn'][0]); - if(!empty($row['ou'][0])) { - $label = $this->charset_decode($row['ou'][0]); + $label = ''; + if(!empty($row['o'][0])) { + $label = $label . $this->charset_decode($row['o'][0]); } - else if(!empty($row['o'][0])) { - $label = $this->charset_decode($row['o'][0]); - } else { - $label = ''; + if(!empty($row['ou'][0])) { + $label = $label . '/' . $this->charset_decode($row['ou'][0]); } if(empty($row['givenname'][0])) {