RE: Bug #12740 Updated: LDAP modify functions do not handle special characters
| From: | Christian Chateauvieux | Date: | Thu, 08 Nov 2001 19:30:39 +0000 |
| Subject: | RE: Bug #12740 Updated: LDAP modify functions do not handle special characters | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-69824@lists.php.net to get a copy of this message | ||
No,
it still does not fix my problem.
I don't know if I am missing the point but I don't see how my locale
settings could help.
Thanks for your patience
Christian CHATEAUVIEUX
-----Original Message-----
From: Bug Database [mailto:php-dev@lists.php.net]
Sent: 23 October 2001 10:08
To: Christian Chateauvieux
Subject: Bug #12740 Updated: LDAP modify functions do not handle special
characters
ID: 12740
Updated by: sniper
Reported By: christian@metamerge.com
Old Status: Open
Status: Feedback
Bug Type: LDAP related
Operating System: Linux RH 7.1
PHP Version: 4.0.5
New Comment:
Okay, does the ldap server support ldap v3?
If so, you should propably try to add this:
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)
--Jani
Previous Comments:
------------------------------------------------------------------------
[2001-10-09 14:05:23] christian@metamerge.com
What would the locale setting change? According to the docs, PHP have a
UTF8 internal reprsentation of data...
------------------------------------------------------------------------
[2001-10-09 14:03:00] christian@metamerge.com
// Here is a function to translate all values of a multi-dimensional
array to UTF8
function encoder ($array)
{
while ( list ($key, $val) = each ($array) )
{
if (!is_array($val))
$array[$key] = utf8_encode($val);
else $array[$key] = encoder ($val);
}
return $array;
}
//Here is a call where
// - $conn_id is a valid connection ID
// - $dn is the dn of the object to add
// - $array is the array containing the values of the attributes indexed
by name
$array = encoder($arr);
ldap_add($conn_id, $dn, $array);
// this call fails
// - if $array contains a special char (e.g å, ø...) , thus returning
SYNTAX ERROR
// - if $dn contains a special char (e.g å, ø...) , thus returning No
Such Object
------------------------------------------------------------------------
[2001-10-02 18:39:49] sniper@php.net
I can't reprocude this with my test scripts. If this still
happens with PHP 4.0.6, reopen. Check also your locale settings.
------------------------------------------------------------------------
[2001-08-14 09:50:59] sniper@php.net
Please include a short example script in this report.
------------------------------------------------------------------------
[2001-08-14 09:41:24] christian@metamerge.com
Hi,
I am working with PHP 4.0.5 and OpenLDAP 2.0.11.
I encounter problems when modifying some entries with attributes
containing special chars (such as å, ø...). The error returned by the
LDAP server is "invalid syntax".
I have read some documentation about this. OpenLDAP can accept special
chars, provided values are base64-encoded, when we use the tools that
come with the application (ldapadd, ldapmodify, etc.).
But how to do this from PHP functions? I tried to base64_encode the
values,
it naturally didn't do the trick (those values were considered as
normal, and thus were not decoded - this polutes my directory.) Same
goes for urlencoding.
Please help!
------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at
http://bugs.php.net/?id=12740&edit=2