Зашифровано значение Phone_Office, введенное в пользовательском интерфейсе перед сохранением, и зашифрованное значение передается в Phone_Office. Но это значение не сохраняется в базе данных. Я внес изменения в следующий файл: —Модули / счет / AccountsFormBase.PHP в этом я добавил свой код под следующую функцию: —
функция handleSave (префикс $, $ redirect = true, $ useRequired = false){
// Другой код, написанный для модуля Accounts, находится здесь // Ниже приведен фрагмент кода, добавленный мной.
$text = $_POST['phone_office'];
$PhNum = $_POST['phone_office'];
$cipher = mcrypt_module_open ( MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, '' );
$iv_size = mcrypt_enc_get_iv_size ( $cipher );
$key = '12345678901234561234567890123456';
$iv = '9532654BD781547023AB4FA7723F2FCD';
// Зашифровать
if (mcrypt_generic_init ( $cipher, $key, $iv ) != - 1) {
$encrypted = mcrypt_generic ( $cipher, $text );
mcrypt_generic_deinit ( $cipher );
}
// Decrypt
if (mcrypt_generic_init ( $cipher, $key, $iv ) != - 1) {
$decrypted = mdecrypt_generic ( $cipher, $encrypted );
mcrypt_generic_deinit ( $cipher );
}
$txtE = bin2hex ( $encrypted );
$phone_office = $txtE;
if(!$focus->ACLAccess('Save')){
ACLController::displayNoAccess(true);
sugar_cleanup(true);
}
$focus->save($check_notify);
Вы должны использовать правильную переменную для номера телефона:
$focus->phone_office = $txtE;
В настоящее время вы присваиваете значение новой переменной, и при сохранении фокуса новая переменная не используется.
Других решений пока нет …