$vals )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$old_values[ $attr ][ $i ] = utf8_decode( $v );
else
$old_values[ $attr ] = utf8_decode( $vals );
foreach( $new_values as $attr => $vals )
if( is_array( $vals ) )
foreach( $vals as $i => $v )
$new_values[ $attr ][ $i ] = utf8_decode( $v );
else
$new_values[ $attr ] = utf8_decode( $vals );
?>
Server: :
$old_val )
{
// Did the user delete the field?
if( ! isset( $new_values[ $attr ] ) ) {
$update_array[ $attr ] = '';
}
// did the user change the field?
elseif( $old_val != $new_values[ $attr ] ) {
$new_val = $new_values[ $attr ];
// special case for userPassword attributes
if( 0 == strcasecmp( $attr, 'userPassword' ) && $new_val != '' )
$new_val = password_hash( $new_val, $_POST['enc_type'] );
$update_array[ $attr ] = $new_val;
}
}
// special case check for a new enc_type for userPassword (not otherwise detected)
if( isset( $_POST['enc_type'] ) &&
$_POST['enc_type'] != $_POST['old_enc_type'] &&
$_POST['enc_type'] != 'clear' &&
$_POST['new_values']['userpassword'] != '' ) {
$new_password = password_hash( $_POST['new_values']['userpassword'], $_POST['enc_type'] );
$update_array[ 'userpassword' ] = $new_password;
}
// strip empty vals from update_array and ensure consecutive indices for each attribute
foreach( $update_array as $attr => $val ) {
if( is_array( $val ) ) {
foreach( $val as $i => $v )
if( null == $v || 0 == strlen( $v ) )
unset( $update_array[$attr][$i] );
$update_array[$attr] = array_values( $update_array[$attr] );
}
}
// at this point, the update_array should look like this (example):
// Array (
// cn => Array(
// [0] => 'Dave',
// [1] => 'Bob' )
// sn => 'Smith',
// telephoneNumber => '555-1234' )
// This array should be ready to be passed to ldap_modify()
?>
0 ) { ?>
|
|
|
$new_val ) { $counter++ ?>
|
";
else
echo htmlspecialchars( utf8_encode( $old_values[ $attr ] ) ) . " ";
echo " | ";
// is this a multi-valued attribute?
if( is_array( $new_val ) ) {
foreach( $new_val as $i => $v ) {
if( $v == '' ) {
// remove it from the update array if it's empty
unset( $update_array[ $attr ][ $i ] );
$update_array[ $attr ] = array_values( $update_array[ $attr ] );
} else {
echo htmlspecialchars( utf8_encode( $v ) ) . " ";
}
}
// was this a multi-valued attribute deletion? If so,
// fix the $update_array to reflect that per update_confirm.php's
// expectations
if( $update_array[ $attr ] == array( 0 => '' ) || $update_array[ $attr ] == array() ) {
$update_array[ $attr ] = '';
echo '' . $lang['attr_deleted'] . '';
}
}
else
if( $new_val != '' )
echo htmlspecialchars( $new_val ) . " ";
else
echo '' . $lang['attr_deleted'] . '';
echo " |
\n\n";
}
?>
.