<?php /** * TorrentPier – Bull-powered BitTorrent tracker engine * * @copyright Copyright (c) 2005-2025 TorrentPier (https://torrentpier.com) * @link https://github.com/torrentpier/torrentpier for the canonical source repository * @license https://github.com/torrentpier/torrentpier/blob/master/LICENSE MIT License */ if (!defined('BB_ROOT')) { die(basename(__FILE__)); } set_die_append_msg(); if (!config()->get('emailer.enabled')) { bb_die($lang['EMAILER_DISABLED']); } $need_captcha = ($_GET['mode'] == 'sendpassword' && !IS_ADMIN && !config()->get('captcha.disabled')); if (isset($_POST['submit'])) { if ($need_captcha && !bb_captcha('check')) { bb_die($lang['CAPTCHA_WRONG']); } $email = (!empty($_POST['email'])) ? trim(strip_tags(htmlspecialchars($_POST['email']))) : ''; $sql = "SELECT * FROM " . BB_USERS . " WHERE user_email = '" . DB()->escape($email) . "'"; if ($result = DB()->sql_query($sql)) { if ($row = DB()->sql_fetchrow($result)) { if (!$row['user_active']) { bb_die($lang['NO_SEND_ACCOUNT_INACTIVE']); } if (in_array($row['user_level'], [MOD, ADMIN])) { bb_die($lang['NO_SEND_ACCOUNT']); } $username = $row['username']; $user_id = $row['user_id']; $user_actkey = make_rand_str(ACTKEY_LENGTH); $user_password = make_rand_str(PASSWORD_MIN_LENGTH); $sql = "UPDATE " . BB_USERS . " SET user_newpasswd = '$user_password', user_actkey = '$user_actkey' WHERE user_id = " . $row['user_id']; if (!DB()->sql_query($sql)) { bb_die('Could not update new password information'); } // Sending email $emailer = new TorrentPier\Emailer(); $emailer->set_to($row['user_email'], $username); $emailer->set_subject($lang['EMAILER_SUBJECT']['USER_ACTIVATE_PASSWD']); $emailer->set_template('user_activate_passwd', $row['user_lang']); $emailer->assign_vars([ 'USERNAME' => $username, 'PASSWORD' => $user_password, 'U_ACTIVATE' => make_url('profile.php?mode=activate&' . POST_USERS_URL . '=' . $user_id . '&act_key=' . $user_actkey) ]); $emailer->send(); bb_die($lang['PASSWORD_UPDATED']); } else { bb_die($lang['NO_EMAIL_MATCH']); } } else { bb_die('Could not obtain user information for sendpassword'); } } else { $email = $username = ''; } $template->assign_vars([ 'USERNAME' => $username, 'EMAIL' => $email, 'CAPTCHA_HTML' => ($need_captcha) ? bb_captcha('get') : '', 'S_HIDDEN_FIELDS' => '', 'S_PROFILE_ACTION' => 'profile.php?mode=sendpassword' ]); print_page('usercp_sendpasswd.tpl');