<?php
+function init_encoder()
+{
+ $k = array(
+
+ "~@"=>"\80", "~A"=>"\81", "~B"=>"\82", "~C"=>"\83", "~D"=>"\84", "~E"=>"\85",
+ "~F"=>"\86", "~G"=>"\87", "~H"=>"\88", "~I"=>"\89", "~J"=>"\8a", "~K"=>"\8b",
+ "~L"=>"\8c", "~M"=>"\8d", "~N"=>"\8e", "~O"=>"\8f", "~P"=>"\90", "~Q"=>"\91",
+ "~R"=>"\92", "~S"=>"\93", "~T"=>"\94", "~U"=>"\95", "~V"=>"\96", "~W"=>"\97",
+ "~^"=>"Â\9e", "~_"=>"Â\9f", "| "=>" ", "¡"=>"ʽ", "¢"=>"ʼ", "£"=>"£",
+ "¤"=>"�", "¥"=>"�", "¦"=>"¦", "§"=>"§", "¨"=>"¨", "©"=>"©",
+ "ª"=>"�", "«"=>"«", "¬"=>"¬", ""=>"Â", "®"=>"�", "¯"=>"â\80\95",
+ "°"=>"°", "±"=>"±", "²"=>"²", "³"=>"³", "´"=>"Î\84", "µ"=>"Î\85",
+ "¶"=>"Î\86", "·"=>"·", "¸"=>"Î\88", "¹"=>"Î\89", "º"=>"Î\8a", "»"=>"»",
+ "¼"=>"Î\8c", "½"=>"½", "¾"=>"Î\8e", "¿"=>"Î\8f", "À"=>"Î\90", "Á"=>"Î\91",
+ "Â"=>"Î\92", "Ã"=>"Î\93", "Ä"=>"Î\94", "Å"=>"Î\95", "Æ"=>"Î\96", "Ç"=>"Î\97",
+ "È"=>"Î\98", "É"=>"Î\99", "Ê"=>"Î\9a", "Ë"=>"Î\9b", "Ì"=>"Î\9c", "Í"=>"Î\9d",
+ "Î"=>"Î\9e", "Ï"=>"Î\9f", "Ð"=>"Î ", "Ñ"=>"Ρ", "Ò"=>"�", "Ó"=>"Σ",
+ "Ô"=>"Τ", "Õ"=>"Î¥", "Ö"=>"Φ", "×"=>"Χ", "Ø"=>"Ψ", "Ù"=>"Ω",
+ "Ú"=>"Ϊ", "Û"=>"Ϋ", "Ü"=>"ά", "Ý"=>"Î", "Þ"=>"ή", "ß"=>"ί",
+ "à"=>"ΰ", "á"=>"α", "â"=>"β", "ã"=>"γ", "ä"=>"δ", "å"=>"ε",
+ "æ"=>"ζ", "ç"=>"η", "è"=>"θ", "é"=>"ι", "ê"=>"κ", "ë"=>"λ",
+ "ì"=>"μ", "í"=>"ν", "î"=>"ξ", "ï"=>"ο", "ð"=>"Ï\80", "ñ"=>"Ï\81",
+ "ò"=>"Ï\82", "ó"=>"Ï\83", "ô"=>"Ï\84", "õ"=>"Ï\85", "ö"=>"Ï\86", "÷"=>"Ï\87",
+ "ø"=>"Ï\88", "ù"=>"Ï\89", "ú"=>"Ï\8a", "û"=>"Ï\8b", "ü"=>"Ï\8c", "ý"=>"Ï\8d",
+ "þ"=>"Ï\8e", "~X"=>"Â\98", "~Y"=>"Â\99", "~Z"=>"Â\9a", "~["=>"Â\9b", "~]"=>"Â\9d"
+ );
+
+ return $k;
+}
+
function init_decoder()
{
$k = array(
return $k;
}
+function encode_string($line,$k)
+{
+ for($i=0;$i<strlen($line);$i++){
+ $c = $line{$i};
+ $val = $k["$c"];
+ $c = ($val != "") ? "$val" : "$c";
+ $new_line .= $c;
+ }
+
+ return $new_line;
+}
+
function decode_string($line,$k)
{
$line = ereg_replace("&","&&",$line);
$ds = @ldap_connect($config[ldap_write_server]);
else
$ds = @ldap_connect($config[ldap_server]);
+ if ($config[general_decode_normal_attributes] == 'yes'){
+ $decode_normal = 1;
+ if (is_file("../lib/lang/$config[general_prefered_lang]/utf8.php3"))
+ include_once("../lib/lang/$config[general_prefered_lang]/utf8.php3");
+ else
+ include_once('../lib/lang/default/utf8.php3');
+ $k = init_encoder();
+ }
if ($ds){
$r = @da_ldap_bind($ds,$config);
if ($r){
- if ($Fcn != '' && $Fcn != '-' && $Fcn != $cn)
+ if ($Fcn != '' && $Fcn != '-' && $Fcn != $cn){
+ list ($givenname,$sn) = split(' ',$Fcn,2);
$mod['cn'] = $Fcn;
+ $mod['cn'] = ($decode_normal) ? encode_string($mod['cn'],$k) : $mod['cn'];
+ $mod['givenname'] = $givenname;
+ $mod['givenname'] = ($decode_normal) ? encode_string($mod['givenname'],$k) : $mod['givenname'];
+ $mod['sn'] = $sn;
+ $mod['sn'] = ($decode_normal) ? encode_string($mod['sn'],$k) : $mod['sn'];
+
+ }
if ($Fmail != '' && $Fmail != '-' && $Fmail != $mail)
$mod['mail'] = $Fmail;
- if ($Fou != '' && $Fou != '-' && $Fou != $ou)
+ if ($Fou != '' && $Fou != '-' && $Fou != $ou){
$mod['ou'] = $Fou;
+ $mod['ou'] = ($decode_normal) ? encode_string($mod['ou'],$k) : $mod['ou'];
+ }
if ($Ftelephonenumber != '' && $Ftelephonenumber != '-' && $Ftelephonenumber != $telephonenumber)
$mod['telephonenumber'] = $Ftelephonenumber;
if ($Fhomephone != '' && $Fhomephone != '-' && $Fhomephone != $homephone)