Arreglando recuperar contraseña

Á

Álvaro Moura

Última actualización el Jul 6, 2026

Se observó una inconsistencia al intentar restablecer la contraseña utilizando la aplicación "app_retrieve_pswd".

La corrección se realizó para los módulos nuevos, creados a partir de la versión 9.10.001.

Para los módulos creados en versiones anteriores que usan esta opción, debemos realizar un pequeño cambio en el código de la aplicación app_retrieve_pswd; consulte el tutorial a continuación.

Este tutorial cubre los módulos de seguridad creados antes de la versión 9.10.001 y que utilizan la opción Enviar correo electrónico con un enlace para generar una nueva contraseña.

1 - Abra a aplicação app_retrieve_pswd

Por defecto, el prefijo de las aplicaciones de seguridad es app_ y la carpeta "security", por lo que, con Scriptcase abierto, es posible localizar la aplicación:

Es posible que el prefijo y la carpeta se hayan cambiado durante la generación del módulo.

2 - Accede al método send_act

Accede al bloque de Programación, en la carpeta Métodos PHP selecciona el método send_act.

3 - Cambiar el codigo

En módulos antiguos, el código para este evento tiene este aspecto:

  1. $act_code = act_code();
  2. $sql = "UPDATE
  3. sec_users
  4. SET
  5. activation_code = '". $act_code ."'
  6. WHERE
  7. login = '". [usr_login] ."'";
  8. sc_exec_sql($sql);
  9. send_mail_message({lang_send_act_code}
  10. . "
    [http://".$_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']. "?act_code=" . $act_code ."](http://". $_SERVER[) ");

Debajo de $act_code = act_code(); agregue el siguiente código: $act_code = substr($act_code, 0, 32);

El código debería verse así:

  1. $act_code = act_code();
  2. $act_code = substr($act_code, 0, 32);
  3. $sql = "UPDATE
  4. sec_1users
  5. SET
  6. activation_code = '". $act_code ."'
  7. WHERE
  8. login = '". [usr_login] ."'";
  9. sc_exec_sql($sql);
  10. send_mail_message({lang_send_act_code}
  11. . "
    [http://".$_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME']. "?act_code=" . $act_code ."](http://". $_SERVER[) ");