private static function getresetpassword_validateFoundUser($post) { $result_array = array(); $user = AuthData::selectUsertokenExpiry($post['email']); if (!$user) { // Validate existing user return array('resetpasswordauthenticated' => false, 'msg' => 'User failed. A user with that email id could not be found.'); } else { $userDetail = AuthData::selectUserAndPasswordByEmail($post['email']); $strtotime1 = strtotime($user->fortgotpassword_duration); $date = date("d M Y H:i:s"); $strtotime = strtotime($date); $diff = $strtotime - $strtotime1; $diff_in_hrs = round($diff / 3600); if ($diff_in_hrs > 1) { $result_array = array('resetpasswordauthenticated' => false, 'msg' => 'Your reset password token is expired. Please try again to request forgot password.'); } else { $userUpdate = AuthData::resetUserPassword(array(':email' => $post['email'], ':password' => password_hash($post['password'], PASSWORD_DEFAULT), ':usertoken' => '', ':fortgotpassword_duration' => '')); if (!$userUpdate) { $result_array = array('resetpasswordauthenticated' => false, 'msg' => 'Some error occured while updating password. please try again.'); } else { $result_array = array('resetpasswordauthenticated' => true, 'msg' => 'Your password has been reset successfully. Please login'); } } if ($result_array["resetpasswordauthenticated"] == false) { $mail_variables = array("SMTP_SERVER_HOST" => "Host", "SMTP_SERVER_PORT" => "Port", "SMTP_SERVER_USERNAME" => "Username", "SMTP_SERVER_PASSWORD" => "Password", "SMTP_SMTP_DEBUG" => 'SMTPDebug', "SMTP_DEBUGOUTPUT" => 'Debugoutput', "SMTP_SECURE" => "SMTPSecure", "SMTP_AUTH" => "SMTPAuth", "PASSWORD_RESET_EMAIL_FROM" => "From", "PASSWORD_RESET_FAILED_EMAIL_SUBJECT" => "Subject", "PASSWORD_RESET_FAILED_EMAIL_BODY" => "Body"); } else { $mail_variables = array("SMTP_SERVER_HOST" => "Host", "SMTP_SERVER_PORT" => "Port", "SMTP_SERVER_USERNAME" => "Username", "SMTP_SERVER_PASSWORD" => "Password", "SMTP_SMTP_DEBUG" => 'SMTPDebug', "SMTP_DEBUGOUTPUT" => 'Debugoutput', "SMTP_SECURE" => "SMTPSecure", "SMTP_AUTH" => "SMTPAuth", "PASSWORD_RESET_EMAIL_FROM" => "From", "PASSWORD_RESET_SUCCESS_EMAIL_SUBJECT" => "Subject", "PASSWORD_RESET_SUCCESS_EMAIL_BODY" => "Body"); } $mail = new \PHPMailer(); $mail->IsSMTP(); foreach ($mail_variables as $name => $value) { $config_data = ConfigData::getVariableByName($name); if ($config_data && $config_data->disabled != 1) { $mail->{$value} = $config_data->value; } } $config_data = ConfigData::getVariableByName("PASSWORD_RESET_ROOT_URL"); $root_url = $config_data->value == '' ? ApiConfig::get('WEBSITE_URL') : $config_data->value; $mail->setFrom($mail->From, 'Triviajoint'); $mail->addAddress($userDetail->email, $userDetail->nameFirst . " " . $userDetail->nameLast); $mail->isHTML(true); $fields = array("!@FIRSTNAME@!", "!@LASTNAME@!", '!@WEBSITEURL@!'); $values = array($userDetail->nameFirst, $userDetail->nameLast, $root_url); $mail->Body = str_replace($fields, $values, $mail->Body); $mail->send(); return $result_array; } }