Verzeichnisstruktur phpBB-3.1.0
- Veröffentlicht
- 27.10.2014
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
ucp_remind.php
001 <?php
002 /**
003 *
004 * This file is part of the phpBB Forum Software package.
005 *
006 * @copyright (c) phpBB Limited <https://www.phpbb.com>
007 * @license GNU General Public License, version 2 (GPL-2.0)
008 *
009 * For full copyright and license information, please see
010 * the docs/CREDITS.txt file.
011 *
012 */
013
014 /**
015 * @ignore
016 */
017 if (!defined('IN_PHPBB'))
018 {
019 exit;
020 }
021
022 /**
023 * ucp_remind
024 * Sending password reminders
025 */
026 class ucp_remind
027 {
028 var $u_action;
029
030 function main($id, $mode)
031 {
032 global $config, $phpbb_root_path, $phpEx;
033 global $db, $user, $auth, $template, $phpbb_container;
034
035 if (!$config['allow_password_reset'])
036 {
037 trigger_error($user->lang('UCP_PASSWORD_RESET_DISABLED', '<a href="mailto:' . htmlspecialchars($config['board_contact']) . '">', '</a>'));
038 }
039
040 $username = request_var('username', '', true);
041 $email = strtolower(request_var('email', ''));
042 $submit = (isset($_POST['submit'])) ? true : false;
043
044 if ($submit)
045 {
046 $sql = 'SELECT user_id, username, user_permissions, user_email, user_jabber, user_notify_type, user_type, user_lang, user_inactive_reason
047 FROM ' . USERS_TABLE . "
048 WHERE user_email_hash = '" . $db->sql_escape(phpbb_email_hash($email)) . "'
049 AND username_clean = '" . $db->sql_escape(utf8_clean_string($username)) . "'";
050 $result = $db->sql_query($sql);
051 $user_row = $db->sql_fetchrow($result);
052 $db->sql_freeresult($result);
053
054 if (!$user_row)
055 {
056 trigger_error('NO_EMAIL_USER');
057 }
058
059 if ($user_row['user_type'] == USER_IGNORE)
060 {
061 trigger_error('NO_USER');
062 }
063
064 if ($user_row['user_type'] == USER_INACTIVE)
065 {
066 if ($user_row['user_inactive_reason'] == INACTIVE_MANUAL)
067 {
068 trigger_error('ACCOUNT_DEACTIVATED');
069 }
070 else
071 {
072 trigger_error('ACCOUNT_NOT_ACTIVATED');
073 }
074 }
075
076 // Check users permissions
077 $auth2 = new \phpbb\auth\auth();
078 $auth2->acl($user_row);
079
080 if (!$auth2->acl_get('u_chgpasswd'))
081 {
082 trigger_error('NO_AUTH_PASSWORD_REMINDER');
083 }
084
085 $server_url = generate_board_url();
086
087 // Make password at least 8 characters long, make it longer if admin wants to.
088 // gen_rand_string() however has a limit of 12 or 13.
089 $user_password = gen_rand_string_friendly(max(8, mt_rand((int) $config['min_pass_chars'], (int) $config['max_pass_chars'])));
090
091 // For the activation key a random length between 6 and 10 will do.
092 $user_actkey = gen_rand_string(mt_rand(6, 10));
093
094 // Instantiate passwords manager
095 $passwords_manager = $phpbb_container->get('passwords.manager');
096
097 $sql = 'UPDATE ' . USERS_TABLE . "
098 SET user_newpasswd = '" . $db->sql_escape($passwords_manager->hash($user_password)) . "', user_actkey = '" . $db->sql_escape($user_actkey) . "'
099 WHERE user_id = " . $user_row['user_id'];
100 $db->sql_query($sql);
101
102 include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx);
103
104 $messenger = new messenger(false);
105
106 $messenger->template('user_activate_passwd', $user_row['user_lang']);
107
108 $messenger->set_addresses($user_row);
109
110 $messenger->anti_abuse_headers($config, $user);
111
112 $messenger->assign_vars(array(
113 'USERNAME' => htmlspecialchars_decode($user_row['username']),
114 'PASSWORD' => htmlspecialchars_decode($user_password),
115 'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey")
116 );
117
118 $messenger->send($user_row['user_notify_type']);
119
120 meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx"));
121
122 $message = $user->lang['PASSWORD_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>');
123 trigger_error($message);
124 }
125
126 $template->assign_vars(array(
127 'USERNAME' => $username,
128 'EMAIL' => $email,
129 'S_PROFILE_ACTION' => append_sid($phpbb_root_path . 'ucp.' . $phpEx, 'mode=sendpassword'))
130 );
131
132 $this->tpl_name = 'ucp_remind';
133 $this->page_title = 'UCP_REMIND';
134 }
135 }
136