Log in or Password changed? Help. Cannot log in
-
I haven’t logged in to my site for weeks. I had a very specific numeric/letter log in and password. I had set the public username to show up (eg, author for posts etc) as the name of the site, our organisation.
The latest log in did not work, neither did any of the earlier ones. When I noticed when I clicked on the author of the posts or anything it now shows as “admin”, not the site name or even our personal names (which they were once set as). It’s as if someone has reset the administrator details and log in.
I tried sending the details to any of my valid emails, but none of them are registered. Since the username is showing as admin, I typed that in and asked for the password reset to be sent to the email address it’s associated with–but I don’t know which it is as I didn’t set it. I checked all my emails and no password reset has come through.
I logged in to C Panel and tried clicking PhpMyAdmin, following reset instructions I found on this site. It was asking for a password. I don’t know if this is standard, but I never set a password for it.
As a result, it seems I’ve lost control of my site and have no idea how to get it back. I’ve tried all the suggestions in the “I can’t log in” article here, but I can’t access PhpMyAdmin. I’ve contacted support at my hosts. If anyone has a work around or alternative, please let me know.
Thanks
-
I copied the users.php file from /public_html/wp-admin. Not sure if it helps. Any comments appreciated.
<?php
/**
* Users administration panel.
*
* @package WordPress
* @subpackage Administration
*//** WordPress Administration Bootstrap */
require_once( ‘./admin.php’ );if ( ! current_user_can( ‘list_users’ ) )
wp_die( __( ‘Cheatin’ uh?’ ) );$wp_list_table = _get_list_table(‘WP_Users_List_Table’);
$pagenum = $wp_list_table->get_pagenum();
$title = __(‘Users’);
$parent_file = ‘users.php’;add_screen_option( ‘per_page’, array(‘label’ => _x( ‘Users’, ‘users per page (screen options)’ )) );
// contextual help – choose Help on the top right of admin panel to preview this.
add_contextual_help($current_screen,
‘<p>’ . __(‘This screen lists all the existing users for your site. Each user has one of five defined roles as set by the site admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users with roles other than Administrator will see fewer options in the dashboard navigation when they are logged in, based on their role.’) . ‘</p>’ .
‘<p>’ . __(‘You can customize the display of information on this screen as you can on other screens, by using the Screen Options tab and the on-screen filters.’) . ‘</p>’ .
‘<p>’ . __(‘To add a new user for your site, click the Add New button at the top of the screen or Add New in the Users menu section.’) . ‘</p>’ .
‘<p>‘ . __(‘For more information:’) . ‘</p>’ .
‘<p>’ . __(‘Documentation on Managing Users‘) . ‘</p>’ .
‘<p>’ . __(‘Descriptions of Roles and Capabilities‘) . ‘</p>’ .
‘<p>’ . __(‘Support Forums‘) . ‘</p>’
);if ( empty($_REQUEST) ) {
$referer = ‘<input type=”hidden” name=”wp_http_referer” value=”‘. esc_attr(stripslashes($_SERVER[‘REQUEST_URI’])) . ‘” />’;
} elseif ( isset($_REQUEST[‘wp_http_referer’]) ) {
$redirect = remove_query_arg(array(‘wp_http_referer’, ‘updated’, ‘delete_count’), stripslashes($_REQUEST[‘wp_http_referer’]));
$referer = ‘<input type=”hidden” name=”wp_http_referer” value=”‘ . esc_attr($redirect) . ‘” />’;
} else {
$redirect = ‘users.php’;
$referer = ”;
}$update = ”;
switch ( $wp_list_table->current_action() ) {
/* Bulk Dropdown menu Role changes */
case ‘promote’:
check_admin_referer(‘bulk-users’);if ( ! current_user_can( ‘promote_users’ ) )
wp_die( __( ‘You can’t edit that user.’ ) );if ( empty($_REQUEST[‘users’]) ) {
wp_redirect($redirect);
exit();
}$editable_roles = get_editable_roles();
if ( empty( $editable_roles[$_REQUEST[‘new_role’]] ) )
wp_die(__(‘You can’t give users that role.’));$userids = $_REQUEST[‘users’];
$update = ‘promote’;
foreach ( $userids as $id ) {
$id = (int) $id;if ( ! current_user_can(‘promote_user’, $id) )
wp_die(__(‘You can’t edit that user.’));
// The new role of the current user must also have promote_users caps
if ( $id == $current_user->ID && !$wp_roles->role_objects[$_REQUEST[‘new_role’]]->has_cap(‘promote_users’) ) {
$update = ‘err_admin_role’;
continue;
}// If the user doesn’t already belong to the blog, bail.
if ( is_multisite() && !is_user_member_of_blog( $id ) )
wp_die(__(‘Cheatin’ uh?’));$user = new WP_User($id);
$user->set_role($_REQUEST[‘new_role’]);
}wp_redirect(add_query_arg(‘update’, $update, $redirect));
exit();break;
case ‘dodelete’:
if ( is_multisite() )
wp_die( __(‘User deletion is not allowed from this screen.’) );check_admin_referer(‘delete-users’);
if ( empty($_REQUEST[‘users’]) ) {
wp_redirect($redirect);
exit();
}if ( ! current_user_can( ‘delete_users’ ) )
wp_die(__(‘You can’t delete users.’));$userids = $_REQUEST[‘users’];
$update = ‘del’;
$delete_count = 0;foreach ( (array) $userids as $id) {
$id = (int) $id;if ( ! current_user_can( ‘delete_user’, $id ) )
wp_die(__( ‘You can’t delete that user.’ ) );if ( $id == $current_user->ID ) {
$update = ‘err_admin_del’;
continue;
}
switch ( $_REQUEST[‘delete_option’] ) {
case ‘delete’:
if ( current_user_can(‘delete_user’, $id) )
wp_delete_user($id);
break;
case ‘reassign’:
if ( current_user_can(‘delete_user’, $id) )
wp_delete_user($id, $_REQUEST[‘reassign_user’]);
break;
}
++$delete_count;
}$redirect = add_query_arg( array(‘delete_count’ => $delete_count, ‘update’ => $update), $redirect);
wp_redirect($redirect);
exit();break;
case ‘delete’:
if ( is_multisite() )
wp_die( __(‘User deletion is not allowed from this screen.’) );check_admin_referer(‘bulk-users’);
if ( empty($_REQUEST[‘users’]) && empty($_REQUEST[‘user’]) ) {
wp_redirect($redirect);
exit();
}if ( ! current_user_can( ‘delete_users’ ) )
$errors = new WP_Error( ‘edit_users’, __( ‘You can’t delete users.’ ) );if ( empty($_REQUEST[‘users’]) )
$userids = array(intval($_REQUEST[‘user’]));
else
$userids = $_REQUEST[‘users’];include (‘admin-header.php’);
?>
<form action=”” method=”post” name=”updateusers” id=”updateusers”>
<?php wp_nonce_field(‘delete-users’) ?>
<?php echo $referer; ?><div class=”wrap”>
<?php screen_icon(); ?>
<h2><?php _e(‘Delete Users’); ?></h2>
<p><?php _e(‘You have specified these users for deletion:’); ?></p>-
<?php
- ” . sprintf(__(‘ID #%1s: %2s The current user will not be deleted.‘), $id, $user->user_login) . “
- <input type=\”hidden\” name=\”users[]\” value=\”” . esc_attr($id) . “\” />” . sprintf(__(‘ID #%1s: %2s’), $id, $user->user_login) . “
$go_delete = false;
foreach ( (array) $userids as $id ) {
$id = (int) $id;
$user = new WP_User($id);
if ( $id == $current_user->ID ) {
echo ”\n”;
} else {
echo ”\n”;
$go_delete = true;
}
}
?><?php if ( $go_delete ) : ?>
<fieldset><p><legend><?php _e(‘What should be done with posts and links owned by this user?’); ?></legend></p>
<ul style=”list-style:none;”>- <label><input type=”radio” id=”delete_option0″ name=”delete_option” value=”delete” checked=”checked” />
<?php _e(‘Delete all posts and links.’); ?></label> - <input type=”radio” id=”delete_option1″ name=”delete_option” value=”reassign” />
<?php echo ‘<label for=”delete_option1″>’.__(‘Attribute all posts and links to:’).'</label>’;
wp_dropdown_users( array( ‘name’ => ‘reassign_user’, ‘exclude’ => array_diff( $userids, array($current_user->ID) ) ) ); ?>
</fieldset>
<input type=”hidden” name=”action” value=”dodelete” />
<?php submit_button( __(‘Confirm Deletion’), ‘secondary’ ); ?>
<?php else : ?>
<p><?php _e(‘There are no valid users selected for deletion.’); ?></p>
<?php endif; ?>
</div>
</form>
<?phpbreak;
case ‘doremove’:
check_admin_referer(‘remove-users’);if ( ! is_multisite() )
wp_die( __( ‘You can’t remove users.’ ) );if ( empty($_REQUEST[‘users’]) ) {
wp_redirect($redirect);
exit;
}if ( ! current_user_can( ‘remove_users’ ) )
wp_die( __( ‘You can’t remove users.’ ) );$userids = $_REQUEST[‘users’];
$update = ‘remove’;
foreach ( $userids as $id ) {
$id = (int) $id;
if ( $id == $current_user->id && !is_super_admin() ) {
$update = ‘err_admin_remove’;
continue;
}
if ( !current_user_can(‘remove_user’, $id) ) {
$update = ‘err_admin_remove’;
continue;
}
remove_user_from_blog($id, $blog_id);
}$redirect = add_query_arg( array(‘update’ => $update), $redirect);
wp_redirect($redirect);
exit;break;
case ‘remove’:
check_admin_referer(‘bulk-users’);
if ( ! is_multisite() )
wp_die( __( ‘You can’t remove users.’ ) );if ( empty($_REQUEST[‘users’]) && empty($_REQUEST[‘user’]) ) {
wp_redirect($redirect);
exit();
}if ( !current_user_can(‘remove_users’) )
$error = new WP_Error(‘edit_users’, __(‘You can’t remove users.’));if ( empty($_REQUEST[‘users’]) )
$userids = array(intval($_REQUEST[‘user’]));
else
$userids = $_REQUEST[‘users’];include (‘admin-header.php’);
?>
<form action=”” method=”post” name=”updateusers” id=”updateusers”>
<?php wp_nonce_field(‘remove-users’) ?>
<?php echo $referer; ?><div class=”wrap”>
<?php screen_icon(); ?>
<h2><?php _e(‘Remove Users from Site’); ?></h2>
<p><?php _e(‘You have specified these users for removal:’); ?></p>-
<?php
- ” . sprintf(__(‘ID #%1s: %2s The current user will not be removed.‘), $id, $user->user_login) . “
- ” . sprintf(__(‘ID #%1s: %2s You don\’t have permission to remove this user.‘), $id, $user->user_login) . “
- <input type=\”hidden\” name=\”users[]\” value=\”{$id}\” />” . sprintf(__(‘ID #%1s: %2s’), $id, $user->user_login) . “
$go_remove = false;
foreach ( $userids as $id ) {
$id = (int) $id;
$user = new WP_User($id);
if ( $id == $current_user->id && !is_super_admin() ) {
echo ”\n”;
} elseif ( !current_user_can(‘remove_user’, $id) ) {
echo ”\n”;
} else {
echo ”\n”;
$go_remove = true;
}
}
?>
<?php if ( $go_remove ) : ?>
<input type=”hidden” name=”action” value=”doremove” />
<?php submit_button( __(‘Confirm Removal’), ‘secondary’ ); ?>
<?php else : ?>
<p><?php _e(‘There are no valid users selected for removal.’); ?></p>
<?php endif; ?>
</div>
</form>
<?phpbreak;
default:
if ( !empty($_GET[‘_wp_http_referer’]) ) {
wp_redirect(remove_query_arg(array(‘_wp_http_referer’, ‘_wpnonce’), stripslashes($_SERVER[‘REQUEST_URI’])));
exit;
}$wp_list_table->prepare_items();
$total_pages = $wp_list_table->get_pagination_arg( ‘total_pages’ );
if ( $pagenum > $total_pages && $total_pages > 0 ) {
wp_redirect( add_query_arg( ‘paged’, $total_pages ) );
exit;
}
include(‘./admin-header.php’);$messages = array();
if ( isset($_GET[‘update’]) ) :
switch($_GET[‘update’]) {
case ‘del’:
case ‘del_many’:
$delete_count = isset($_GET[‘delete_count’]) ? (int) $_GET[‘delete_count’] : 0;
$messages[] = ‘<div id=”message” class=”updated”><p>’ . sprintf(_n(‘%s user deleted’, ‘%s users deleted’, $delete_count), $delete_count) . ‘</p></div>’;
break;
case ‘add’:
$messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘New user created.’) . ‘</p></div>’;
break;
case ‘promote’:
$messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘Changed roles.’) . ‘</p></div>’;
break;
case ‘err_admin_role’:
$messages[] = ‘<div id=”message” class=”error”><p>’ . __(‘The current user’s role must have user editing capabilities.’) . ‘</p></div>’;
$messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘Other user roles have been changed.’) . ‘</p></div>’;
break;
case ‘err_admin_del’:
$messages[] = ‘<div id=”message” class=”error”><p>’ . __(‘You can’t delete the current user.’) . ‘</p></div>’;
$messages[] = ‘<div id=”message” class=”updated”><p>’ . __(‘Other users have been deleted.’) . ‘</p></div>’;
break;
case ‘remove’:
$messages[] = ‘<div id=”message” class=”updated fade”><p>’ . __(‘User removed from this site.’) . ‘</p></div>’;
break;
case ‘err_admin_remove’:
$messages[] = ‘<div id=”message” class=”error”><p>’ . __(“You can’t remove the current user.”) . ‘</p></div>’;
$messages[] = ‘<div id=”message” class=”updated fade”><p>’ . __(‘Other users have been removed.’) . ‘</p></div>’;
break;
}
endif; ?><?php if ( isset($errors) && is_wp_error( $errors ) ) : ?>
<div class=”error”>-
<?php
- $err
foreach ( $errors->get_error_messages() as $err )
echo ”\n”;
?></div>
<?php endif;if ( ! empty($messages) ) {
foreach ( $messages as $msg )
echo $msg;
} ?><div class=”wrap”>
<?php screen_icon(); ?>
<h2>
<?php
echo esc_html( $title );
if ( current_user_can( ‘create_users’ ) ) { ?>
<?php echo esc_html_x( ‘Add New’, ‘user’ ); ?>
<?php } elseif ( is_multisite() && current_user_can( ‘promote_users’ ) ) { ?>
<?php echo esc_html_x( ‘Add Existing’, ‘user’ ); ?>
<?php }if ( $usersearch )
printf( ‘<span class=”subtitle”>’ . __(‘Search results for “%s”’) . ‘</span>’, esc_html( $usersearch ) ); ?>
</h2><?php $wp_list_table->views(); ?>
<form action=”” method=”get”>
<?php $wp_list_table->search_box( __( ‘Search Users’ ), ‘user’ ); ?>
<?php $wp_list_table->display(); ?>
</form><?php
if ( is_multisite() ) {
foreach ( array(‘user_login’ => ‘user_login’, ‘first_name’ => ‘user_firstname’, ‘last_name’ => ‘user_lastname’, ’email’ => ‘user_email’, ‘url’ => ‘user_uri’, ‘role’ => ‘user_role’) as $formpost => $var ) {
$var = ‘new_’ . $var;
$$var = isset($_REQUEST[$formpost]) ? esc_attr(stripslashes($_REQUEST[$formpost])) : ”;
}
unset($name);
}
?><br class=”clear” />
</div>
<?php
break;} // end of the $doaction switch
include(‘./admin-footer.php’);
And this is the admin.php file. Again, I don’t know if this is of use. I’m not a coder (a template user). I have no idea if it shows log in details, but I really do need to be able to access my site for maintenance and obviously as someone has changed my log in details. Thanks.
<?php
/**
* WordPress Administration Bootstrap
*
* @package WordPress
* @subpackage Administration
*//**
* In WordPress Administration Panels
*
* @since 2.3.2
*/
if ( ! defined(‘WP_ADMIN’) )
define(‘WP_ADMIN’, TRUE);if ( ! defined(‘WP_NETWORK_ADMIN’) )
define(‘WP_NETWORK_ADMIN’, FALSE);if ( ! defined(‘WP_USER_ADMIN’) )
define(‘WP_USER_ADMIN’, FALSE);if ( ! WP_NETWORK_ADMIN && ! WP_USER_ADMIN ) {
define(‘WP_BLOG_ADMIN’, TRUE);
}if ( isset($_GET[‘import’]) && !defined(‘WP_LOAD_IMPORTERS’) )
define(‘WP_LOAD_IMPORTERS’, true);require_once(dirname(dirname(__FILE__)) . ‘/wp-load.php’);
if ( get_option(‘db_upgraded’) ) {
$wp_rewrite->flush_rules();
update_option( ‘db_upgraded’, false );/**
* Runs on the next page load after successful upgrade
*
* @since 2.8
*/
do_action(‘after_db_upgrade’);
} elseif ( get_option(‘db_version’) != $wp_db_version ) {
if ( !is_multisite() ) {
wp_redirect(admin_url(‘upgrade.php?_wp_http_referer=’ . urlencode(stripslashes($_SERVER[‘REQUEST_URI’]))));
exit;
} elseif ( apply_filters( ‘do_mu_upgrade’, true ) ) {
/**
* On really small MU installs run the upgrader every time,
* else run it less often to reduce load.
*
* @since 2.8.4b
*/
$c = get_blog_count();
if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) {
require_once( ABSPATH . WPINC . ‘/http.php’ );
$response = wp_remote_get( admin_url( ‘upgrade.php?step=1’ ), array( ‘timeout’ => 120, ‘httpversion’ => ‘1.1’ ) );
do_action( ‘after_mu_upgrade’, $response );
unset($response);
}
unset($c);
}
}require_once(ABSPATH . ‘wp-admin/includes/admin.php’);
auth_redirect();
nocache_headers();
// Schedule trash collection
if ( !wp_next_scheduled(‘wp_scheduled_delete’) && !defined(‘WP_INSTALLING’) )
wp_schedule_event(time(), ‘daily’, ‘wp_scheduled_delete’);set_screen_options();
$date_format = get_option(‘date_format’);
$time_format = get_option(‘time_format’);wp_reset_vars(array(‘profile’, ‘redirect’, ‘redirect_url’, ‘a’, ‘text’, ‘trackback’, ‘pingback’));
wp_enqueue_script( ‘common’ );
wp_enqueue_script( ‘jquery-color’ );$editing = false;
if ( isset($_GET[‘page’]) ) {
$plugin_page = stripslashes($_GET[‘page’]);
$plugin_page = plugin_basename($plugin_page);
}if ( isset($_GET[‘post_type’]) )
$typenow = sanitize_key($_GET[‘post_type’]);
else
$typenow = ”;if ( isset($_GET[‘taxonomy’]) )
$taxnow = sanitize_key($_GET[‘taxonomy’]);
else
$taxnow = ”;if ( WP_NETWORK_ADMIN )
require(ABSPATH . ‘wp-admin/network/menu.php’);
elseif ( WP_USER_ADMIN )
require(ABSPATH . ‘wp-admin/user/menu.php’);
else
require(ABSPATH . ‘wp-admin/menu.php’);if ( current_user_can( ‘manage_options’ ) )
@ini_set( ‘memory_limit’, apply_filters( ‘admin_memory_limit’, ‘256M’ ) );do_action(‘admin_init’);
if ( isset($plugin_page) ) {
if ( !empty($typenow) )
$the_parent = $pagenow . ‘?post_type=’ . $typenow;
else
$the_parent = $pagenow;
if ( ! $page_hook = get_plugin_page_hook($plugin_page, $the_parent) ) {
$page_hook = get_plugin_page_hook($plugin_page, $plugin_page);
// backwards compatibility for plugins using add_management_page
if ( empty( $page_hook ) && ‘edit.php’ == $pagenow && ” != get_plugin_page_hook($plugin_page, ‘tools.php’) ) {
// There could be plugin specific params on the URL, so we need the whole query string
if ( !empty($_SERVER[ ‘QUERY_STRING’ ]) )
$query_string = $_SERVER[ ‘QUERY_STRING’ ];
else
$query_string = ‘page=’ . $plugin_page;
wp_redirect( admin_url(‘tools.php?’ . $query_string) );
exit;
}
}
unset($the_parent);
}$hook_suffix = ”;
if ( isset($page_hook) )
$hook_suffix = $page_hook;
else if ( isset($plugin_page) )
$hook_suffix = $plugin_page;
else if ( isset($pagenow) )
$hook_suffix = $pagenow;set_current_screen();
// Handle plugin admin pages.
if ( isset($plugin_page) ) {
if ( $page_hook ) {
do_action(‘load-‘ . $page_hook);
if (! isset($_GET[‘noheader’]))
require_once(ABSPATH . ‘wp-admin/admin-header.php’);do_action($page_hook);
} else {
if ( validate_file($plugin_page) )
wp_die(__(‘Invalid plugin page’));if ( !( file_exists(WP_PLUGIN_DIR . “/$plugin_page”) && is_file(WP_PLUGIN_DIR . “/$plugin_page”) ) && !( file_exists(WPMU_PLUGIN_DIR . “/$plugin_page”) && is_file(WPMU_PLUGIN_DIR . “/$plugin_page”) ) )
wp_die(sprintf(__(‘Cannot load %s.’), htmlentities($plugin_page)));do_action(‘load-‘ . $plugin_page);
if ( !isset($_GET[‘noheader’]))
require_once(ABSPATH . ‘wp-admin/admin-header.php’);if ( file_exists(WPMU_PLUGIN_DIR . “/$plugin_page”) )
include(WPMU_PLUGIN_DIR . “/$plugin_page”);
else
include(WP_PLUGIN_DIR . “/$plugin_page”);
}include(ABSPATH . ‘wp-admin/admin-footer.php’);
exit();
} else if (isset($_GET[‘import’])) {$importer = $_GET[‘import’];
if ( ! current_user_can(‘import’) )
wp_die(__(‘You are not allowed to import.’));if ( validate_file($importer) ) {
wp_redirect( admin_url( ‘import.php?invalid=’ . $importer ) );
exit;
}// Allow plugins to define importers as well
if ( !isset($wp_importers) || !isset($wp_importers[$importer]) || ! is_callable($wp_importers[$importer][2])) {
if (! file_exists(ABSPATH . “wp-admin/import/$importer.php”)) {
wp_redirect( admin_url( ‘import.php?invalid=’ . $importer ) );
exit;
}
include(ABSPATH . “wp-admin/import/$importer.php”);
}$parent_file = ‘tools.php’;
$submenu_file = ‘import.php’;
$title = __(‘Import’);if (! isset($_GET[‘noheader’]))
require_once(ABSPATH . ‘wp-admin/admin-header.php’);require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
define(‘WP_IMPORTING’, true);
if ( apply_filters( ‘force_filtered_html_on_import’, false ) )
kses_init_filters(); // Always filter imported data with kses on multisite.call_user_func($wp_importers[$importer][2]);
include(ABSPATH . ‘wp-admin/admin-footer.php’);
// Make sure rules are flushed
global $wp_rewrite;
$wp_rewrite->flush_rules(false);exit();
} else {
do_action(“load-$pagenow”);
// Backwards compatibility with old load-page-new.php, load-page.php,
// and load-categories.php actions.
if ( $typenow == ‘page’ ) {
if ( $pagenow == ‘post-new.php’ )
do_action( ‘load-page-new.php’ );
elseif ( $pagenow == ‘post.php’ )
do_action( ‘load-page.php’ );
} elseif ( $pagenow == ‘edit-tags.php’ ) {
if ( $taxnow == ‘category’ )
do_action( ‘load-categories.php’ );
elseif ( $taxnow == ‘link_category’ )
do_action( ‘load-edit-link-categories.php’ );
}
}if ( !empty($_REQUEST[‘action’]) )
do_action(‘admin_action_’ . $_REQUEST[‘action’]);?>
And the wp-login file. Thaaanks!
<?php
/**
* WordPress User Page
*
* Handles authentication, registering, resetting passwords, forgot password,
* and other user handling.
*
* @package WordPress
*//** Make sure that the WordPress bootstrap has run before continuing. */
require( dirname(__FILE__) . ‘/wp-load.php’ );// Redirect to https login if forced to use SSL
if ( force_ssl_admin() && !is_ssl() ) {
if ( 0 === strpos($_SERVER[‘REQUEST_URI’], ‘http’) ) {
wp_redirect(preg_replace(‘|^https://|’, ‘https://’, $_SERVER[‘REQUEST_URI’]));
exit();
} else {
wp_redirect(‘https://’ . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’]);
exit();
}
}/**
* Outputs the header for the login page.
*
* @uses do_action() Calls the ‘login_head’ for outputting HTML in the Log In
* header.
* @uses apply_filters() Calls ‘login_headerurl’ for the top login link.
* @uses apply_filters() Calls ‘login_headertitle’ for the top login title.
* @uses apply_filters() Calls ‘login_message’ on the message to display in the
* header.
* @uses $error The error global, which is checked for displaying errors.
*
* @param string $title Optional. WordPress Log In Page title to display in
* <title/> element.
* @param string $message Optional. Message to display in header.
* @param WP_Error $wp_error Optional. WordPress Error Object
*/
function login_header($title = ‘Log In’, $message = ”, $wp_error = ”) {
global $error, $is_iphone, $interim_login, $current_site;// Don’t index any of these forms
add_filter( ‘pre_option_blog_public’, ‘__return_zero’ );
add_action( ‘login_head’, ‘noindex’ );if ( empty($wp_error) )
$wp_error = new WP_Error();// Shake it!
$shake_error_codes = array( ’empty_password’, ’empty_email’, ‘invalid_email’, ‘invalidcombo’, ’empty_username’, ‘invalid_username’, ‘incorrect_password’ );
$shake_error_codes = apply_filters( ‘shake_error_codes’, $shake_error_codes );if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) )
add_action( ‘login_head’, ‘wp_shake_js’, 12 );?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”https://www.w3.org/1999/xhtml” <?php language_attributes(); ?>>
<head>
<title><?php bloginfo(‘name’); ?> › <?php echo $title; ?></title>
<meta http-equiv=”Content-Type” content=”<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>” />
<?php
wp_admin_css( ‘login’, true );
wp_admin_css( ‘colors-fresh’, true );if ( $is_iphone ) { ?>
<meta name=”viewport” content=”width=320; initial-scale=0.9; maximum-scale=1.0; user-scalable=0;” />
<style type=”text/css” media=”screen”>
form { margin-left: 0px; }
#login { margin-top: 20px; }
</style>
<?php
} elseif ( isset($interim_login) && $interim_login ) { ?>
<style type=”text/css” media=”all”>
.login #login { margin: 20px auto; }
</style>
<?php
}do_action( ‘login_enqueue_scripts’ );
do_action( ‘login_head’ ); ?>
</head>
<body class=”login”>
<?php if ( !is_multisite() ) { ?>
<div id=”login”><h1>” title=”<?php echo apply_filters(‘login_headertitle’, esc_attr__(‘Powered by WordPress’)); ?>”><?php bloginfo(‘name’); ?></h1>
<?php } else { ?>
<div id=”login”><h1>” title=”<?php echo apply_filters(‘login_headertitle’, esc_attr($current_site->site_name) ); ?>”><span class=”hide”><?php bloginfo(‘name’); ?></span></h1>
<?php }$message = apply_filters(‘login_message’, $message);
if ( !empty( $message ) ) echo $message . “\n”;// Incase a plugin uses $error rather than the $errors object
if ( !empty( $error ) ) {
$wp_error->add(‘error’, $error);
unset($error);
}if ( $wp_error->get_error_code() ) {
$errors = ”;
$messages = ”;
foreach ( $wp_error->get_error_codes() as $code ) {
$severity = $wp_error->get_error_data($code);
foreach ( $wp_error->get_error_messages($code) as $error ) {
if ( ‘message’ == $severity )
$messages .= ‘ ‘ . $error . “
\n”;
else
$errors .= ‘ ‘ . $error . “
\n”;
}
}
if ( !empty($errors) )
echo ‘<div id=”login_error”>’ . apply_filters(‘login_errors’, $errors) . “</div>\n”;
if ( !empty($messages) )
echo ‘<p class=”message”>’ . apply_filters(‘login_messages’, $messages) . “</p>\n”;
}
} // End of login_header()/**
* Outputs the footer for the login page.
*
* @param string $input_id Which input to auto-focus
*/
function login_footer($input_id = ”) {
echo “</div>\n”;if ( !empty($input_id) ) {
?>
<script type=”text/javascript”>
try{document.getElementById(‘<?php echo $input_id; ?>’).focus();}catch(e){}
if(typeof wpOnload==’function’)wpOnload();
</script>
<?php
}
?>
<p id=”backtoblog”>/” title=”<?php esc_attr_e(‘Are you lost?’) ?>”><?php printf(__(‘← Back to %s’), get_bloginfo(‘title’, ‘display’ )); ?></p>
<?php do_action(‘login_footer’); ?>
</body>
</html>
<?php
}function wp_shake_js() {
global $is_iphone;
if ( $is_iphone )
return;
?>
<script type=”text/javascript”>
addLoadEvent = function(func){if(typeof jQuery!=”undefined”)jQuery(document).ready(func);else if(typeof wpOnload!=’function’){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
function s(id,pos){g(id).left=pos+’px’;}
function g(id){return document.getElementById(id).style;}
function shake(id,a,d){c=a.shift();s(id,c);if(a.length>0){setTimeout(function(){shake(id,a,d);},d);}else{try{g(id).position=’static’;wp_attempt_focus();}catch(e){}}}
addLoadEvent(function(){ var p=new Array(15,30,15,0,-15,-30,-15,0);p=p.concat(p.concat(p));var i=document.forms[0].id;g(i).position=’relative’;shake(i,p,20);});
</script>
<?php
}/**
* Handles sending password retrieval email to user.
*
* @uses $wpdb WordPress Database object
*
* @return bool|WP_Error True: when finish. WP_Error on error
*/
function retrieve_password() {
global $wpdb, $current_site;$errors = new WP_Error();
if ( empty( $_POST[‘user_login’] ) && empty( $_POST[‘user_email’] ) )
$errors->add(’empty_username’, __(‘ERROR: Enter a username or e-mail address.’));if ( strpos($_POST[‘user_login’], ‘@’) ) {
$user_data = get_user_by_email(trim($_POST[‘user_login’]));
if ( empty($user_data) )
$errors->add(‘invalid_email’, __(‘ERROR: There is no user registered with that email address.’));
} else {
$login = trim($_POST[‘user_login’]);
$user_data = get_userdatabylogin($login);
}do_action(‘lostpassword_post’);
if ( $errors->get_error_code() )
return $errors;if ( !$user_data ) {
$errors->add(‘invalidcombo’, __(‘ERROR: Invalid username or e-mail.’));
return $errors;
}// redefining user_login ensures we return the right case in the email
$user_login = $user_data->user_login;
$user_email = $user_data->user_email;do_action(‘retreive_password’, $user_login); // Misspelled and deprecated
do_action(‘retrieve_password’, $user_login);$allow = apply_filters(‘allow_password_reset’, true, $user_data->ID);
if ( ! $allow )
return new WP_Error(‘no_password_reset’, __(‘Password reset is not allowed for this user’));
else if ( is_wp_error($allow) )
return $allow;$key = $wpdb->get_var($wpdb->prepare(“SELECT user_activation_key FROM $wpdb->users WHERE user_login = %s”, $user_login));
if ( empty($key) ) {
// Generate something random for a key…
$key = wp_generate_password(20, false);
do_action(‘retrieve_password_key’, $user_login, $key);
// Now insert the new md5 key into the db
$wpdb->update($wpdb->users, array(‘user_activation_key’ => $key), array(‘user_login’ => $user_login));
}
$message = __(‘Someone requested that the password be reset for the following account:’) . “\r\n\r\n”;
$message .= network_site_url() . “\r\n\r\n”;
$message .= sprintf(__(‘Username: %s’), $user_login) . “\r\n\r\n”;
$message .= __(‘If this was a mistake, just ignore this email and nothing will happen.’) . “\r\n\r\n”;
$message .= __(‘To reset your password, visit the following address:’) . “\r\n\r\n”;
$message .= ‘<‘ . network_site_url(“wp-login.php?action=rp&key=$key&login=” . rawurlencode($user_login), ‘login’) . “>\r\n”;if ( is_multisite() )
$blogname = $GLOBALS[‘current_site’]->site_name;
else
// The blogname option is escaped with esc_html on the way into the database in sanitize_option
// we want to reverse this for the plain text arena of emails.
$blogname = wp_specialchars_decode(get_option(‘blogname’), ENT_QUOTES);$title = sprintf( __(‘[%s] Password Reset’), $blogname );
$title = apply_filters(‘retrieve_password_title’, $title);
$message = apply_filters(‘retrieve_password_message’, $message, $key);if ( $message && !wp_mail($user_email, $title, $message) )
wp_die( __(‘The e-mail could not be sent.’) . “
\n” . __(‘Possible reason: your host may have disabled the mail() function…’) );return true;
}/**
* Retrieves a user row based on password reset key and login
*
* @uses $wpdb WordPress Database object
*
* @param string $key Hash to validate sending user’s password
* @param string $login The user login
*
* @return object|WP_Error
*/
function check_password_reset_key($key, $login) {
global $wpdb;$key = preg_replace(‘/[^a-z0-9]/i’, ”, $key);
if ( empty( $key ) || !is_string( $key ) )
return new WP_Error(‘invalid_key’, __(‘Invalid key’));if ( empty($login) || !is_string($login) )
return new WP_Error(‘invalid_key’, __(‘Invalid key’));$user = $wpdb->get_row($wpdb->prepare(“SELECT * FROM $wpdb->users WHERE user_activation_key = %s AND user_login = %s”, $key, $login));
if ( empty( $user ) )
return new WP_Error(‘invalid_key’, __(‘Invalid key’));return $user;
}/**
* Handles resetting the user’s password.
*
* @uses $wpdb WordPress Database object
*
* @param string $key Hash to validate sending user’s password
*/
function reset_password($user, $new_pass) {
do_action(‘password_reset’, $user, $new_pass);wp_set_password($new_pass, $user->ID);
wp_password_change_notification($user);
}/**
* Handles registering a new user.
*
* @param string $user_login User’s username for logging in
* @param string $user_email User’s email address to send password and add
* @return int|WP_Error Either user’s ID or error on failure.
*/
function register_new_user( $user_login, $user_email ) {
$errors = new WP_Error();$sanitized_user_login = sanitize_user( $user_login );
$user_email = apply_filters( ‘user_registration_email’, $user_email );// Check the username
if ( $sanitized_user_login == ” ) {
$errors->add( ’empty_username’, __( ‘ERROR: Please enter a username.’ ) );
} elseif ( ! validate_username( $user_login ) ) {
$errors->add( ‘invalid_username’, __( ‘ERROR: This username is invalid because it uses illegal characters. Please enter a valid username.’ ) );
$sanitized_user_login = ”;
} elseif ( username_exists( $sanitized_user_login ) ) {
$errors->add( ‘username_exists’, __( ‘ERROR: This username is already registered, please choose another one.’ ) );
}// Check the e-mail address
if ( $user_email == ” ) {
$errors->add( ’empty_email’, __( ‘ERROR: Please type your e-mail address.’ ) );
} elseif ( ! is_email( $user_email ) ) {
$errors->add( ‘invalid_email’, __( ‘ERROR: The email address isn’t correct.’ ) );
$user_email = ”;
} elseif ( email_exists( $user_email ) ) {
$errors->add( ’email_exists’, __( ‘ERROR: This email is already registered, please choose another one.’ ) );
}do_action( ‘register_post’, $sanitized_user_login, $user_email, $errors );
$errors = apply_filters( ‘registration_errors’, $errors, $sanitized_user_login, $user_email );
if ( $errors->get_error_code() )
return $errors;$user_pass = wp_generate_password( 12, false);
$user_id = wp_create_user( $sanitized_user_login, $user_pass, $user_email );
if ( ! $user_id ) {
$errors->add( ‘registerfail’, sprintf( __( ‘ERROR: Couldn’t register you… please contact the webmaster !’ ), get_option( ‘admin_email’ ) ) );
return $errors;
}update_user_option( $user_id, ‘default_password_nag’, true, true ); //Set up the Password change nag.
wp_new_user_notification( $user_id, $user_pass );
return $user_id;
}//
// Main
//$action = isset($_REQUEST[‘action’]) ? $_REQUEST[‘action’] : ‘login’;
$errors = new WP_Error();if ( isset($_GET[‘key’]) )
$action = ‘resetpass’;// validate action so as to default to the login screen
if ( !in_array($action, array(‘logout’, ‘lostpassword’, ‘retrievepassword’, ‘resetpass’, ‘rp’, ‘register’, ‘login’), true) && false === has_filter(‘login_form_’ . $action) )
$action = ‘login’;nocache_headers();
header(‘Content-Type: ‘.get_bloginfo(‘html_type’).’; charset=’.get_bloginfo(‘charset’));
if ( defined(‘RELOCATE’) ) { // Move flag is set
if ( isset( $_SERVER[‘PATH_INFO’] ) && ($_SERVER[‘PATH_INFO’] != $_SERVER[‘PHP_SELF’]) )
$_SERVER[‘PHP_SELF’] = str_replace( $_SERVER[‘PATH_INFO’], ”, $_SERVER[‘PHP_SELF’] );$schema = is_ssl() ? ‘https://’ : ‘https://’;
if ( dirname($schema . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘PHP_SELF’]) != get_option(‘siteurl’) )
update_option(‘siteurl’, dirname($schema . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘PHP_SELF’]) );
}//Set a cookie now to see if they are supported by the browser.
setcookie(TEST_COOKIE, ‘WP Cookie check’, 0, COOKIEPATH, COOKIE_DOMAIN);
if ( SITECOOKIEPATH != COOKIEPATH )
setcookie(TEST_COOKIE, ‘WP Cookie check’, 0, SITECOOKIEPATH, COOKIE_DOMAIN);// allow plugins to override the default actions, and to add extra actions if they want
do_action(‘login_form_’ . $action);$http_post = (‘POST’ == $_SERVER[‘REQUEST_METHOD’]);
switch ($action) {case ‘logout’ :
check_admin_referer(‘log-out’);
wp_logout();$redirect_to = !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ‘wp-login.php?loggedout=true’;
wp_safe_redirect( $redirect_to );
exit();break;
case ‘lostpassword’ :
case ‘retrievepassword’ :if ( $http_post ) {
$errors = retrieve_password();
if ( !is_wp_error($errors) ) {
$redirect_to = !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ‘wp-login.php?checkemail=confirm’;
wp_safe_redirect( $redirect_to );
exit();
}
}if ( isset($_GET[‘error’]) && ‘invalidkey’ == $_GET[‘error’] ) $errors->add(‘invalidkey’, __(‘Sorry, that key does not appear to be valid.’));
$redirect_to = apply_filters( ‘lostpassword_redirect’, !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ” );do_action(‘lost_password’);
login_header(__(‘Lost Password’), ‘<p class=”message”>’ . __(‘Please enter your username or email address. You will receive a link to create a new password via email.’) . ‘</p>’, $errors);$user_login = isset($_POST[‘user_login’]) ? stripslashes($_POST[‘user_login’]) : ”;
?>
<form name=”lostpasswordform” id=”lostpasswordform” action=”<?php echo site_url(‘wp-login.php?action=lostpassword’, ‘login_post’) ?>” method=”post”>
<p>
<label><?php _e(‘Username or E-mail:’) ?>
<input type=”text” name=”user_login” id=”user_login” class=”input” value=”<?php echo esc_attr($user_login); ?>” size=”20″ tabindex=”10″ /></label>
</p>
<?php do_action(‘lostpassword_form’); ?>
<input type=”hidden” name=”redirect_to” value=”<?php echo esc_attr( $redirect_to ); ?>” />
<p class=”submit”><input type=”submit” name=”wp-submit” id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Get New Password’); ?>” tabindex=”100″ /></p>
</form><p id=”nav”>
“><?php _e(‘Log in’) ?>
<?php if (get_option(‘users_can_register’)) : ?>
| “><?php _e(‘Register’) ?>
<?php endif; ?>
</p><?php
login_footer(‘user_login’);
break;case ‘resetpass’ :
case ‘rp’ :
$user = check_password_reset_key($_GET[‘key’], $_GET[‘login’]);if ( is_wp_error($user) ) {
wp_redirect( site_url(‘wp-login.php?action=lostpassword&error=invalidkey’) );
exit;
}$errors = ”;
if ( isset($_POST[‘pass1’]) && $_POST[‘pass1’] != $_POST[‘pass2’] ) {
$errors = new WP_Error(‘password_reset_mismatch’, __(‘The passwords do not match.’));
} elseif ( isset($_POST[‘pass1’]) && !empty($_POST[‘pass1’]) ) {
reset_password($user, $_POST[‘pass1’]);
login_header(__(‘Password Reset’), ‘<p class=”message reset-pass”>’ . __(‘Your password has been reset.’) . ‘ ‘ . __(‘Log in’) . ‘</p>’);
login_footer();
exit;
}wp_enqueue_script(‘utils’);
wp_enqueue_script(‘user-profile’);login_header(__(‘Reset Password’), ‘<p class=”message reset-pass”>’ . __(‘Enter your new password below.’) . ‘</p>’, $errors );
?>
<form name=”resetpassform” id=”resetpassform” action=”<?php echo site_url(‘wp-login.php?action=resetpass&key=’ . urlencode($_GET[‘key’]) . ‘&login=’ . urlencode($_GET[‘login’]), ‘login_post’) ?>” method=”post”>
<input type=”hidden” id=”user_login” value=”<?php echo esc_attr( $_GET[‘login’] ); ?>” autocomplete=”off” /><p>
<label><?php _e(‘New password’) ?>
<input type=”password” name=”pass1″ id=”pass1″ class=”input” size=”20″ value=”” autocomplete=”off” /></label>
</p>
<p>
<label><?php _e(‘Confirm new password’) ?>
<input type=”password” name=”pass2″ id=”pass2″ class=”input” size=”20″ value=”” autocomplete=”off” /></label>
</p><div id=”pass-strength-result” class=”hide-if-no-js”><?php _e(‘Strength indicator’); ?></div>
<p class=”description indicator-hint”><?php _e(‘Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! ” ? $ % ^ & ).’); ?></p><br class=”clear” />
<p class=”submit”><input type=”submit” name=”wp-submit” id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Reset Password’); ?>” tabindex=”100″ /></p>
</form><p id=”nav”>
“><?php _e(‘Log in’) ?>
<?php if (get_option(‘users_can_register’)) : ?>
| “><?php _e(‘Register’) ?>
<?php endif; ?>
</p><?php
login_footer(‘user_pass’);
break;case ‘register’ :
if ( is_multisite() ) {
// Multisite uses wp-signup.php
wp_redirect( apply_filters( ‘wp_signup_location’, site_url(‘wp-signup.php’) ) );
exit;
}if ( !get_option(‘users_can_register’) ) {
wp_redirect( site_url(‘wp-login.php?registration=disabled’) );
exit();
}$user_login = ”;
$user_email = ”;
if ( $http_post ) {
$user_login = $_POST[‘user_login’];
$user_email = $_POST[‘user_email’];
$errors = register_new_user($user_login, $user_email);
if ( !is_wp_error($errors) ) {
$redirect_to = !empty( $_POST[‘redirect_to’] ) ? $_POST[‘redirect_to’] : ‘wp-login.php?checkemail=registered’;
wp_safe_redirect( $redirect_to );
exit();
}
}$redirect_to = apply_filters( ‘registration_redirect’, !empty( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ” );
login_header(__(‘Registration Form’), ‘<p class=”message register”>’ . __(‘Register For This Site’) . ‘</p>’, $errors);
?><form name=”registerform” id=”registerform” action=”<?php echo site_url(‘wp-login.php?action=register’, ‘login_post’) ?>” method=”post”>
<p>
<label><?php _e(‘Username’) ?>
<input type=”text” name=”user_login” id=”user_login” class=”input” value=”<?php echo esc_attr(stripslashes($user_login)); ?>” size=”20″ tabindex=”10″ /></label>
</p>
<p>
<label><?php _e(‘E-mail’) ?>
<input type=”text” name=”user_email” id=”user_email” class=”input” value=”<?php echo esc_attr(stripslashes($user_email)); ?>” size=”25″ tabindex=”20″ /></label>
</p>
<?php do_action(‘register_form’); ?>
<p id=”reg_passmail”><?php _e(‘A password will be e-mailed to you.’) ?></p>
<br class=”clear” />
<input type=”hidden” name=”redirect_to” value=”<?php echo esc_attr( $redirect_to ); ?>” />
<p class=”submit”><input type=”submit” name=”wp-submit” id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Register’); ?>” tabindex=”100″ /></p>
</form><p id=”nav”>
“><?php _e(‘Log in’) ?> |
” title=”<?php _e(‘Password Lost and Found’) ?>”><?php _e(‘Lost your password?’) ?>
</p><?php
login_footer(‘user_login’);
break;case ‘login’ :
default:
$secure_cookie = ”;
$interim_login = isset($_REQUEST[‘interim-login’]);// If the user wants ssl but the session is not ssl, force a secure cookie.
if ( !empty($_POST[‘log’]) && !force_ssl_admin() ) {
$user_name = sanitize_user($_POST[‘log’]);
if ( $user = get_userdatabylogin($user_name) ) {
if ( get_user_option(‘use_ssl’, $user->ID) ) {
$secure_cookie = true;
force_ssl_admin(true);
}
}
}if ( isset( $_REQUEST[‘redirect_to’] ) ) {
$redirect_to = $_REQUEST[‘redirect_to’];
// Redirect to https if user wants ssl
if ( $secure_cookie && false !== strpos($redirect_to, ‘wp-admin’) )
$redirect_to = preg_replace(‘|^https://|’, ‘https://’, $redirect_to);
} else {
$redirect_to = admin_url();
}$reauth = empty($_REQUEST[‘reauth’]) ? false : true;
// If the user was redirected to a secure login form from a non-secure admin page, and secure login is required but secure admin is not, then don’t use a secure
// cookie and redirect back to the referring non-secure admin page. This allows logins to always be POSTed over SSL while allowing the user to choose visiting
// the admin via http or https.
if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, ‘https’) ) && ( 0 === strpos($redirect_to, ‘http’) ) )
$secure_cookie = false;$user = wp_signon(”, $secure_cookie);
$redirect_to = apply_filters(‘login_redirect’, $redirect_to, isset( $_REQUEST[‘redirect_to’] ) ? $_REQUEST[‘redirect_to’] : ”, $user);
if ( !is_wp_error($user) && !$reauth ) {
if ( $interim_login ) {
$message = ‘<p class=”message”>’ . __(‘You have logged in successfully.’) . ‘</p>’;
login_header( ”, $message ); ?>
<script type=”text/javascript”>setTimeout( function(){window.close()}, 8000);</script>
<p class=”alignright”>
<input type=”button” class=”button-primary” value=”<?php esc_attr_e(‘Close’); ?>” onclick=”window.close()” /></p>
</div></body></html>
<?php exit;
}if ( ( empty( $redirect_to ) || $redirect_to == ‘wp-admin/’ || $redirect_to == admin_url() ) ) {
// If the user doesn’t belong to a blog, send them to user admin. If the user can’t edit posts, send them to their profile.
if ( is_multisite() && !get_active_blog_for_user($user->id) )
$redirect_to = user_admin_url();
elseif ( is_multisite() && !$user->has_cap(‘read’) )
$redirect_to = get_dashboard_url( $user->id );
elseif ( !$user->has_cap(‘edit_posts’) )
$redirect_to = admin_url(‘profile.php’);
}
wp_safe_redirect($redirect_to);
exit();
}$errors = $user;
// Clear errors if loggedout is set.
if ( !empty($_GET[‘loggedout’]) || $reauth )
$errors = new WP_Error();// If cookies are disabled we can’t log in even with a valid user+pass
if ( isset($_POST[‘testcookie’]) && empty($_COOKIE[TEST_COOKIE]) )
$errors->add(‘test_cookie’, __(“ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.”));// Some parts of this script use the main login form to display a message
if ( isset($_GET[‘loggedout’]) && TRUE == $_GET[‘loggedout’] )
$errors->add(‘loggedout’, __(‘You are now logged out.’), ‘message’);
elseif ( isset($_GET[‘registration’]) && ‘disabled’ == $_GET[‘registration’] )
$errors->add(‘registerdisabled’, __(‘User registration is currently not allowed.’));
elseif ( isset($_GET[‘checkemail’]) && ‘confirm’ == $_GET[‘checkemail’] )
$errors->add(‘confirm’, __(‘Check your e-mail for the confirmation link.’), ‘message’);
elseif ( isset($_GET[‘checkemail’]) && ‘newpass’ == $_GET[‘checkemail’] )
$errors->add(‘newpass’, __(‘Check your e-mail for your new password.’), ‘message’);
elseif ( isset($_GET[‘checkemail’]) && ‘registered’ == $_GET[‘checkemail’] )
$errors->add(‘registered’, __(‘Registration complete. Please check your e-mail.’), ‘message’);
elseif ( $interim_login )
$errors->add(‘expired’, __(‘Your session has expired. Please log-in again.’), ‘message’);// Clear any stale cookies.
if ( $reauth )
wp_clear_auth_cookie();login_header(__(‘Log In’), ”, $errors);
if ( isset($_POST[‘log’]) )
$user_login = ( ‘incorrect_password’ == $errors->get_error_code() || ’empty_password’ == $errors->get_error_code() ) ? esc_attr(stripslashes($_POST[‘log’])) : ”;
$rememberme = ! empty( $_POST[‘rememberme’] );
?><form name=”loginform” id=”loginform” action=”<?php echo site_url(‘wp-login.php’, ‘login_post’) ?>” method=”post”>
<p>
<label><?php _e(‘Username’) ?>
<input type=”text” name=”log” id=”user_login” class=”input” value=”<?php echo esc_attr($user_login); ?>” size=”20″ tabindex=”10″ /></label>
</p>
<p>
<label><?php _e(‘Password’) ?>
<input type=”password” name=”pwd” id=”user_pass” class=”input” value=”” size=”20″ tabindex=”20″ /></label>
</p>
<?php do_action(‘login_form’); ?>
<p class=”forgetmenot”><label><input name=”rememberme” type=”checkbox” id=”rememberme” value=”forever” tabindex=”90″<?php checked( $rememberme ); ?> /> <?php esc_attr_e(‘Remember Me’); ?></label></p>
<p class=”submit”>
<input type=”submit” name=”wp-submit” id=”wp-submit” class=”button-primary” value=”<?php esc_attr_e(‘Log In’); ?>” tabindex=”100″ />
<?php if ( $interim_login ) { ?>
<input type=”hidden” name=”interim-login” value=”1″ />
<?php } else { ?>
<input type=”hidden” name=”redirect_to” value=”<?php echo esc_attr($redirect_to); ?>” />
<?php } ?>
<input type=”hidden” name=”testcookie” value=”1″ />
</p>
</form><?php if ( !$interim_login ) { ?>
<p id=”nav”>
<?php if ( isset($_GET[‘checkemail’]) && in_array( $_GET[‘checkemail’], array(‘confirm’, ‘newpass’) ) ) : ?>
<?php elseif ( get_option(‘users_can_register’) ) : ?>
“><?php _e(‘Register’) ?> |
” title=”<?php _e(‘Password Lost and Found’) ?>”><?php _e(‘Lost your password?’) ?>
<?php else : ?>
” title=”<?php _e(‘Password Lost and Found’) ?>”><?php _e(‘Lost your password?’) ?>
<?php endif; ?>
</p>
</div>
<p id=”backtoblog”>/” title=”<?php esc_attr_e(‘Are you lost?’) ?>”><?php printf(__(‘← Back to %s’), get_bloginfo(‘title’, ‘display’ )); ?></p>
<?php } else { ?>
</div>
<?php } ?><script type=”text/javascript”>
function wp_attempt_focus(){
setTimeout( function(){ try{
<?php if ( $user_login || $interim_login ) { ?>
d = document.getElementById(‘user_pass’);
d.value = ”;
<?php } else { ?>
d = document.getElementById(‘user_login’);
<?php if ( ‘invalid_username’ == $errors->get_error_code() ) { ?>
if( d.value != ” )
d.value = ”;
<?php
}
}?>
d.focus();
d.select();
} catch(e){}
}, 200);
}<?php if ( !$error ) { ?>
wp_attempt_focus();
<?php } ?>
if(typeof wpOnload==’function’)wpOnload();
</script>
<?php do_action( ‘login_footer’ ); ?>
</body>
</html>
<?phpbreak;
} // end action switch
?>
- The topic ‘Log in or Password changed? Help. Cannot log in’ is closed to new replies.