function password_save() { $rcmail = rcmail::get_instance(); $alternative_email = get_input_value('_alternative_email',RCUBE_INPUT_POST); if(preg_match('/.+@[^.]+\..+/Umi',$alternative_email)) { $rcmail->db->query("REPLACE INTO forgot_password(alternative_email, user_id) values(?,?)",$alternative_email,$rcmail->user->ID); $message = $this->gettext('alternative_email_updated','forgot_password'); $rcmail->output->command('display_message', $message, 'confirmation'); } else { $message = $this->gettext('alternative_email_invalid','forgot_password'); $rcmail->output->command('display_message', $message, 'error'); } $password_plugin = new password($this->api); if($_REQUEST['_curpasswd'] || $_REQUEST['_newpasswd'] || $_REQUEST['_confpasswd']) { $password_plugin->password_save(); } else { //render password form $password_plugin->add_texts('localization/'); $this->register_handler('plugin.body', array($password_plugin, 'password_form')); rcmail_overwrite_action('plugin.password'); $rcmail->output->send('plugin'); } }