diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 3ba26e68cc..e0f9655cc8 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -938,10 +938,12 @@ function login_box($s_action, $s_hidden_fields = '', $login_explain = '') $err = ''; if (isset($_POST['login'])) { - $autologin = (!empty($_POST['autologin'])) ? TRUE : FALSE; + $username = request_var('username', ''); + $password = request_var('password', ''); + $autologin = (!empty($_POST['autologin'])) ? TRUE : FALSE; $viewonline = (!empty($_POST['viewonline'])) ? 0 : 1; - if (($result = $auth->login($_POST['username'], $_POST['password'], $autologin, $viewonline)) === true) + if (($result = $auth->login($username, $password, $autologin, $viewonline)) === true) { // TODO // Force change password ... plugin for EVENT_LOGIN in future @@ -960,6 +962,8 @@ function login_box($s_action, $s_hidden_fields = '', $login_explain = '') $err = ($result === 0) ? $user->lang['ACTIVE_ERROR'] : $user->lang['LOGIN_ERROR']; } + $s_hidden_fields = (!empty($_SERVER['HTTP_REFERER'])) ? '' : ''; + $template->assign_vars(array( 'LOGIN_ERROR' => $err, 'LOGIN_EXPLAIN' => $login_explain, diff --git a/phpBB/language/en/lang_main.php b/phpBB/language/en/lang_main.php index 0189505a0d..ba50f5d5a4 100644 --- a/phpBB/language/en/lang_main.php +++ b/phpBB/language/en/lang_main.php @@ -219,16 +219,19 @@ $lang = array( 'REPLY_TO_TOPIC' => 'Reply to topic', 'REPLY_WITH_QUOTE' => 'Reply with quote', - 'RETURN_INDEX' => 'Click %sHere%s to return to the index', - 'RETURN_TOPIC' => 'Click %sHere%s to return to the topic', - 'RETURN_POST' => 'Click %sHere%s to return to the post', - 'RETURN_FORUM' => 'Click %sHere%s to return to the forum', - 'RETURN_LOGIN' => 'Click %sHere%s to try again', - 'RETURN_MCP' => 'Click %sHere%s to return to the Moderator Control Panel', - 'RETURN_GROUP' => 'Click %sHere%s to return to the Group Control Panel', - 'RETURN_UCP' => 'Click %sHere%s to return to the User Control Panel', - 'VIEW_MESSAGE' => 'Click %sHere%s to view your message', - 'URL_REDIRECT' => 'If your browser does not support meta redirection please click %sHERE%s to be redirected.', + 'RETURN_INDEX' => 'Click %sHere%s to return to the index', + 'RETURN_TOPIC' => 'Click %sHere%s to return to the topic', + 'RETURN_POST' => 'Click %sHere%s to return to the post', + 'RETURN_FORUM' => 'Click %sHere%s to return to the forum', + 'RETURN_LOGIN' => 'Click %sHere%s to try again', + 'RETURN_MCP' => 'Click %sHere%s to return to the Moderator Control Panel', + 'RETURN_GROUP' => 'Click %sHere%s to return to the Group Control Panel', + 'RETURN_UCP' => 'Click %sHere%s to return to the User Control Panel', + 'VIEW_MESSAGE' => 'Click %sHere%s to view your message', + 'RETURN_PAGE' => 'Click %sHere%s to return to the previous page', + 'LOGIN_REDIRECT' => 'You have been successfully logged in.', + 'LOGOUT_REDIRECT' => 'You have been successfully logged out.', + 'URL_REDIRECT' => 'If your browser does not support meta redirection please click %sHERE%s to be redirected.', 'INFORMATION' => 'Information', 'BOARD_DISABLE' => 'Sorry but this board is currently unavailable', diff --git a/phpBB/ucp.php b/phpBB/ucp.php index ecbf1ddde5..bac1c5d51c 100755 --- a/phpBB/ucp.php +++ b/phpBB/ucp.php @@ -15,7 +15,6 @@ // // * Registration // * Link to (additional?) registration conditions -// * Admin forced revalidation of given user/s from ACP // * Opening tab: // * Last visit time @@ -25,9 +24,6 @@ // * Unread PM counter // * Link/s to MCP if applicable? -// * Black and White lists -// * Mark posts/PM's of buddies different colour? - // * PM system // * See privmsg @@ -278,7 +274,12 @@ switch ($mode) define('IN_LOGIN', true); login_box("ucp.$phpEx$SID&mode=login"); - redirect("index.$phpEx$SID"); + + $redirect = request_var('redirect', "index.$phpEx$SID"); + meta_refresh(3, $redirect); + + $message = $user->lang['LOGIN_REDIRECT'] . '

' . sprintf($user->lang['RETURN_PAGE'], '', ' '); + trigger_error($message); break; case 'logout': @@ -287,13 +288,17 @@ switch ($mode) $user->destroy(); } - redirect("index.$phpEx$SID"); + $redirect = (!empty($_SERVER['HTTP_REFERER'])) ? htmlspecialchars($_SERVER['HTTP_REFERER']) : "index.$phpEx$SID"; + meta_refresh(3, $redirect); + + $message = $user->lang['LOGOUT_REDIRECT'] . '

' . sprintf($user->lang['RETURN_PAGE'], '', ' '); + trigger_error($message); break; } // Only registered users can go beyond this point -if ($user->data['user_type'] == USER_INACTIVE || $user->data['user_type'] == USER_IGNORE) +if ($user->data['user_id'] == ANONYMOUS || $user->data['user_type'] == USER_INACTIVE || $user->data['user_type'] == USER_IGNORE) { redirect("index.$phpEx"); } @@ -305,6 +310,8 @@ obtain_word_list($censors); // Output listing of friends online +$update_time = $config['load_online_time'] * 60; + $sql = 'SELECT DISTINCT u.user_id, u.username, MAX(s.session_time) as online_time, MIN(s.session_allow_viewonline) AS viewonline FROM ((' . ZEBRA_TABLE . ' z LEFT JOIN ' . SESSIONS_TABLE . ' s ON s.session_user_id = z.zebra_id), ' . USERS_TABLE . ' u) @@ -314,7 +321,6 @@ $sql = 'SELECT DISTINCT u.user_id, u.username, MAX(s.session_time) as online_tim GROUP BY z.zebra_id'; $result = $db->sql_query($sql); -$update_time = $config['load_online_time'] * 60; while ($row = $db->sql_fetchrow($result)) { $which = (time() - $update_time < $row['online_time']) ? 'online' : 'offline';