do_login(); } break; case "wp-register.php": $login_register_object = new login_register_object(); $login_register_object->do_register(); break; } } } # This object is instantiated in global space as $login_register_object class login_register_object { # called in place of the wp-login.php page ... public function do_login() { global $wpdb; switch($_REQUEST["action"]) { case "logout": # logout $redirect_to = "/wp-login.php?login_register_trigger=loggedout"; if ( isset($_REQUEST['redirect_to']) ) $redirect_to = $_REQUEST['redirect_to']; $current_user = wp_get_current_user(); login_register_object::logger( array('message' => 'logout user: '. $current_user->user_login . ' redirect to: ' . $redirect_to) ); wp_clearcookie(); do_action('wp_logout'); nocache_headers(); wp_redirect($redirect_to); exit; break; case 'lostpassword': # lost password do_action('lost_password'); ob_start(); ?>

'.$error.'
'; ?>

bg = array(230, 230, 230); $captcha_instance->fg = array(13, 13, 13); $captchaword = $captcha_instance->generate_random_word(); $captcha_prefix = mt_rand(); echo ''; ?>

0 ) { $postcontent = wp_get_single_post( (int)$login_register_lostpassword_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); exit; break; case 'retrievelostpassword': # retrieve lost password $captchaok = true; if ( class_exists('ReallySimpleCaptcha') ) { $captcha_instance = new ReallySimpleCaptcha(); $captchaok = $captcha_correct = $captcha_instance->check($_POST['captcha_prefix'], trim($_POST['simple_captcha'])); $captcha_instance->remove($captcha_prefix); } if ( $captchaok ) { $user_data = get_userdatabylogin($_POST['email']); if ( is_object($user_data) ) { $user_login = $user_data->user_login; $user_email = $user_data->user_email; } $user_emailok = ( ! $user_email || $user_email != $_POST['email'] ) ? false : true; if ( $user_emailok ) { do_action('retreive_password', $user_login); # Misspelled and deprecated. do_action('retrieve_password', $user_login); $key = substr( md5( uniqid( microtime() ) ), 0, 50); $wpdb->query("UPDATE $wpdb->users SET user_activation_key = '$key' WHERE user_login = '$user_login'"); $message = __('Someone has asked to reset the password for the following site and username.') . "\r\n\r\n"; $message .= get_option('siteurl') . "\r\n\r\n"; $message .= sprintf(__('Username: %s'), $user_login) . "\r\n\r\n"; $message .= __('To reset your password visit the following address, otherwise just ignore this email and nothing will happen.') . "\r\n\r\n"; $message .= get_settings('siteurl') . "/wp-login.php?action=resetpass&key=$key\r\n"; if ( file_exists( WP_PLUGIN_DIR . '/login-register/login_register_mailer.php') ) require WP_PLUGIN_DIR . '/login-register/login_register_mailer.php'; $o = null; if ( class_exists( 'login_register_mailer' ) ) $o = new login_register_mailer(); if ( $o != null && method_exists ( $o , 'sendmail' ) ) $m = $o->sendmail($user_email, sprintf(__('[%s] Password Reset'), get_settings('blogname')), $message); else $m = wp_mail($user_email, sprintf(__('[%s] Password Reset'), get_settings('blogname')), $message); } } ob_start(); echo '
'; if ( ! $captchaok ) { echo '

' . __('Captcha error.') . '

'; } elseif ( ! $user_emailok ) { echo '

' . __('Please enter a valid email address.') . '

'; } elseif ($m == false) { echo '

' . __('The e-mail could not be sent.') . '
'; echo __('Possible reason: your host may have disabled the mail() function...') . '

'; } else { echo '

' . sprintf(__('The e-mail was sent successfully to %s\'s e-mail address. Please check the email message for your instructions to recover your password.'), $user_login) . '

'; } ?> '; $html = ob_get_contents(); ob_end_clean(); $login_register_lostpassword_post = get_option("login_register_lostpassword_post"); if ( (int)$login_register_lostpassword_post > 0 ) { $postcontent = wp_get_single_post( (int)$login_register_lostpassword_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); login_register_object::logger( array('message' => 'retrievelostpassword user: '. $user_login ) ); exit; break; case 'resetpass': # reset password ob_start(); echo '
'; $key = preg_replace('/a-z0-9/i', '', $_GET['key']); $err = false; if ( ! $err ) { if ( empty($key) ) { _e('Sorry, that key does not appear to be valid.'); echo '<' . __('Lost your password?') . ''; $err = true; } } if ( ! $err ) { $user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_activation_key = '$key' AND user_activation_key <> ''"); if ( ! $user ) { _e('Sorry, that key does not appear to be valid.'); echo '<' . __('Lost your password?') . ''; $err = true; } } if ( ! $err ) { login_register_object::logger( array('message' => 'resetpass user: '. $user->user_login ) ); $pwlength = get_option("login_register_minpassword_length","7"); if ( $pwlength < 7 ) $pwlength = 7; else if ( $pwlength > 30 ) $pwlength = 30; if ( file_exists( WP_PLUGIN_DIR . '/login-register/login_register_resetpassword.php') ) require WP_PLUGIN_DIR . '/login-register/login_register_resetpassword.php'; $o = null; if ( class_exists( 'login_register_resetpassword' ) ) $o = new login_register_resetpassword(); if ( $o != null && method_exists ( $o , 'recoverpassword' ) ) { $o->recoverpassword($user->user_login,$key,$pwlength); } else { $new_pass = substr( md5( uniqid( microtime() ) ), 0, $pwlength); $wpdb->query("UPDATE $wpdb->users SET user_pass = MD5('$new_pass'), user_activation_key = '' WHERE user_login = '" . $user->user_login . "'"); wp_cache_delete($user->ID, 'users'); wp_cache_delete($user->user_login, 'userlogins'); $message = sprintf(__('Username: %s'), $user->user_login) . "\r\n"; $message .= sprintf(__('Password: %s'), $new_pass) . "\r\n"; $message .= get_settings('siteurl') . "/wp-login.php\r\n"; if ( file_exists( WP_PLUGIN_DIR . '/login-register/login_register_mailer.php') ) require WP_PLUGIN_DIR . '/login-register/login_register_mailer.php'; $o = null; if ( class_exists( 'login_register_mailer' ) ) $o = new login_register_mailer(); if ( $o != null && method_exists ( $o , 'sendmail' ) ) $m = $o->sendmail($user->user_email, sprintf(__('[%s] Your new password'), get_settings('blogname')), $message); else $m = wp_mail($user->user_email, sprintf(__('[%s] Your new password'), get_settings('blogname')), $message); if ($m == false) { echo '

' . __('The e-mail could not be sent.') . "
\n"; echo __('Possible reason: your host may have disabled the mail() function...') . '

'; } else { echo '

' . sprintf(__('Your new password is in the mail.'), $user_login) . '
'; echo "" . __('Click here to login!') . '

'; } } if ( $m == true && get_option("login_register_tell_admin_when_password_recovered").'x' == 'yesx' ) { # send a copy of password change notification to the admin $message = sprintf(__('Password Lost and Changed for user: %s'), $user->user_login) . "\r\n"; if ( $o != null && method_exists ( $o , 'sendmail' ) ) $o->sendmail( get_settings('admin_email') , sprintf(__('[%s] Password Lost/Change'), get_settings('blogname')), $message); else wp_mail(get_settings('admin_email'), sprintf(__('[%s] Password Lost/Change'), get_settings('blogname')), $message); } } echo "
"; $html = ob_get_contents(); ob_end_clean(); $login_register_resetpassword_post = get_option("login_register_resetpassword_post"); if ( (int)$login_register_resetpassword_post > 0 ) { $postcontent = wp_get_single_post( (int)$login_register_resetpassword_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); exit; break; case 'login': # login and default action default: $user_login = ''; $user_pass = ''; $using_cookie = false; if ( ! isset( $_REQUEST['redirect_to'] ) ) $redirect_to = ( $_POST['redirect_to'].'x' != 'x' ) ? $_POST['redirect_to'] : '/wp-admin/'; else $redirect_to = $_REQUEST['redirect_to']; if( $_POST ) { $user_login = ( get_option('login_register_emailislogin').'x' != 'yesx' ) ? $_POST['user_login'] : $_POST['user_email']; $user_login = sanitize_user( $user_login ); $user_pass = $_POST['login_password']; $rememberme = $_POST['rememberme']; } else { if (function_exists('wp_get_cookie_login')) # This check was added in version 1.0 to make the plugin compatible with WP2.0.1 { $cookie_login = wp_get_cookie_login(); if ( ! empty($cookie_login) ) { $using_cookie = true; $user_login = $cookie_login['login']; $user_pass = $cookie_login['password']; } } elseif ( ! empty($_COOKIE) ) # This was added in version 1.0 to make the plugin compatible with WP2.0.1 { if ( ! empty($_COOKIE[USER_COOKIE]) ) $user_login = $_COOKIE[USER_COOKIE]; if ( ! empty($_COOKIE[PASS_COOKIE]) ) { $user_pass = $_COOKIE[PASS_COOKIE]; $using_cookie = true; } } } # get user_login from email if ($user_login == "") { global $wpdb; $user_email = $_POST['user_email']; if (is_email($user_email)) { $user = $wpdb->get_row("SELECT * FROM $wpdb->users WHERE user_email = '$user_email'"); if ($user) $user_login = $user->user_login; } } $login_result = wp_signon( array('user_login' => $user_login, 'user_password' => $user_pass , 'remember' => ( $rememberme == 'forever' ) ), false ); if ( is_wp_error($login_result) ) $error = $login_result->get_error_message(); else { $user = new WP_User(0, $user_login); # If the user can't edit posts, send them to their profile. if ( ! $user->has_cap('edit_posts') && ( empty( $redirect_to ) || $redirect_to == '/wp-admin/' ) ) $redirect_to = '/wp-admin/profile.php'; if ( wp_login($user_login, $user_pass, $using_cookie) ) { wp_setcookie($user_login, $user_pass, false, '', '', $rememberme); wp_redirect($redirect_to); login_register_object::logger( array('message' => 'login user: '. $user_login . ' rememberme: ' . ( ( ! empty($rememberme) ) ? $rememberme : 'no' ) . ' redirect to: ' . $redirect_to) ); if ( $rememberme == 'forever' ) setcookie("login_register_login_rememberme", 'yes', time()+31536000); else setcookie("login_register_login_rememberme", 'no', 0); /* expire in 1 year */ exit; } else { if ( $using_cookie ) $error = __('Your session has expired.'); } } $expirepassword = ''; if ( is_wp_error($login_result) ) { $login_register_expiredpassword_errorcode = trim(get_option('login_register_expiredpassword_errorcode')); if ( $login_register_expiredpassword_errorcode.'x' != 'x' && $login_result->get_error_code().'x' == $login_register_expiredpassword_errorcode.'x' && file_exists( WP_PLUGIN_DIR . '/login-register/login_register_expiredpassword.php') ) { require WP_PLUGIN_DIR . '/login-register/login_register_expiredpassword.php'; $o = null; if ( class_exists( 'login_register_expiredpassword' ) ) $o = new login_register_expiredpassword(); $pwlength = get_option("login_register_minpassword_length","7"); if ( $pwlength < 7 ) $pwlength = 7; else if ( $pwlength > 30 ) $pwlength = 30; if ( $o != null && method_exists ( $o , 'loginform' ) ) $expirepassword = $o->loginform($user_login,$user_pass,$pwlength); } } ob_start(); ?>
' . $error . '
'; ?>


tabindex="3" />

0 ) { $postcontent = wp_get_single_post( (int)$login_register_logout_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } break; default: $login_register_login_post = get_option("login_register_login_post"); if ( (int)$login_register_login_post > 0 ) { $postcontent = wp_get_single_post( (int)$login_register_login_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } break; } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); exit; break; } # end switch } # called in place of the wp-register.php page ... public function do_register() { global $wpdb, $wp_query; if (!is_array($wp_query->query_vars)) $wp_query->query_vars = array(); switch( $_POST["action"] ) { case 'register': $pwlength = get_option("login_register_minpassword_length","7"); if ( $pwlength < 7 ) $pwlength = 7; else if ( $pwlength > 30 ) $pwlength = 30; require_once( ABSPATH . WPINC . '/registration-functions.php'); $user_pass = ''; $confirm_user_pass = ''; $user_login = sanitize_user( $_POST['user_login'] ); $user_email = $_POST['user_email']; if ( isset( $_POST['user_pass'] )) $user_pass = $_POST['user_pass']; if ( isset( $_POST['confirm_user_pass'] )) $confirm_user_pass = $_POST['confirm_user_pass']; $captchaok = true; if ( class_exists('ReallySimpleCaptcha') ) { $captcha_instance = new ReallySimpleCaptcha(); $captchaok = $captcha_correct = $captcha_instance->check($_POST['captcha_prefix'], trim($_POST['simple_captcha'])); $captcha_instance->remove($captcha_prefix); } $errors = array(); if ( $user_login == '' ) $errors['user_login'] = __('ERROR: Please enter a username.'); if ($user_email == '') { $errors['user_email'] = __('ERROR: Please type your e-mail address.'); } else if ( ! is_email($user_email) ) { $errors['user_email'] = __('ERROR: The email address isn’t correct.'); $user_email = ''; } $customproc = false; if ( file_exists( WP_PLUGIN_DIR . '/login-register/login_register_registerprocedure.php') ) { require WP_PLUGIN_DIR . '/login-register/login_register_registerprocedure.php'; $o = null; if ( class_exists( 'login_register_registerprocedure' ) ) $o = new login_register_registerprocedure(); if ( $o != null && method_exists ( $o , 'processregister' ) ) { $customproc = true; $r = $o->processregister($user_login,$user_email,$user_pass,$pwlength,$captchaok); $errors = $r['errors']; $user_id = $r['user_id']; unset($r); unset($o); } } if ( ! $customproc ) { if ( ! $captchaok ) $errors['captcha'] = __('ERROR: captcha error.'); if ( username_exists( $user_login ) ) $errors['user_login'] = __('ERROR: This username is already registered, please choose another one.'); $email_exists = $wpdb->get_row("SELECT user_email FROM $wpdb->users WHERE user_email = '$user_email'"); if ( $email_exists) die (__('ERROR: This email address is already registered, please supply another.')); if ($user_pass == '') $errors['user_pass'] = __('ERROR: Please enter a password.'); elseif ( strpos( " ".$user_pass, "\\" ) ) $errors['user_pass'] = __('ERROR: Passwords may not contain the character "\\".'); elseif ( strlen($user_pass) < $pwlength ) $errors['user_pass'] = __('ERROR: Please enter a password of at least ' . $pwlength . ' characters.'); elseif ( $user_pass.'x' != $confirm_user_pass.'x' ) $errors['user_pass'] = __('ERROR: Please enter password password twice, exactly the same.'); if ( @count($errors) == 0 ) { $user_id = wp_create_user( $user_login, $user_pass, $user_email ); if ( ! $user_id ) $errors['user_id'] = sprintf(__('ERROR: Couldn’t register you... please contact the webmaster !'), get_settings('admin_email')); else wp_new_user_notification($user_id, $user_pass); } } if ( @count($errors) == 0 ) { $_REQUEST["action"] = "login"; $_POST['login_password'] = $user_pass; $_POST['user_email'] = $user_email; $_POST['rememberme'] = true; ob_start(); ?>

' . wp_specialchars($user_login) . ''); ?>

' . wp_specialchars($user_email) . ''); ?>

0 ) { $postcontent = wp_get_single_post( (int)$login_register_userregistration_post, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); login_register_object::logger( array('message' => 'userregistration user: '. $user_login ) ); exit; } # fall thru to default ... default: # show registration form $pwlength = get_option("login_register_minpassword_length","7"); if ( $pwlength < 7 ) $pwlength = 7; else if ( $pwlength > 30 ) $pwlength = 30; $registrationcustom = ''; if ( file_exists( WP_PLUGIN_DIR . '/login-register/login_register_registerprocedure.php') ) { require WP_PLUGIN_DIR . '/login-register/login_register_registerprocedure.php'; $o = null; if ( class_exists( 'login_register_registerprocedure' ) ) $o = new login_register_registerprocedure(); if ( $o != null && method_exists ( $o , 'registrationform' ) ) $registrationcustom = $o->registrationform($user_login,$user_email,$pwlength); } ob_start(); ?>


Please enter a new password of minimum length of characters.

bg = array(230, 230, 230); $captcha_instance->fg = array(13, 13, 13); $captchaword = $captcha_instance->generate_random_word(); $captcha_prefix = mt_rand(); echo ''; ?>

0 ) { $postcontent = wp_get_single_post( (int)$login_register_userregistration, ARRAY_A); $html = preg_replace('/\{LOGINREGISTER_CONTENT\}/',$html, preg_replace('/\n/',' ',trim( $postcontent['post_content'] ) ) ); } echo preg_replace('/__BODY_CONTENT__/',$html, $this->_getthemeheader() ); exit; break; } } private function _getthemeheader() { $login_register_pullcssandjavascriptintoview = get_option("login_register_pullcssandjavascriptintoview"); if ( $login_register_pullcssandjavascriptintoview.'x' != 'yesx' ) { ob_start(); ?><?php wp_title(); ?>
__BODY_CONTENT__
<?php wp_title(); ?>
__BODY_CONTENT__