public static function attemptRecover($strName) { $objUser = clsUser::getByName($strName); if ($objUser == null) { return 'forgot_unknown'; } if ($objUser->get('email') == '') { return 'forgot_noemail'; } $strNewPassword = ''; for ($i = 0; $i < 20; $i++) { $strNewPassword .= substr('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', rand(0, 61), 1); } $objUser->set('temp_password', md5($strNewPassword)); $objUser->set('temp_password_date', date('Y-m-d H:i:s', time())); $objUser->save(); $strMessage = "Your password for " . SITE_NAME . " has been reset to:\r\n\r\n"; $strMessage .= $strNewPassword . "\r\n\r\n"; $strMessage .= "This password will expire soon, so be sure to change it.\r\n"; return smtp_send(array($objUser->get('email')), SITE_NAME, SITE_NAME . ": Forgot Password", $strMessage); }