微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WordPress自定义登录和注册可以在localhost上正常工作,但无法正常工作

如何解决WordPress自定义登录和注册可以在localhost上正常工作,但无法正常工作

大家好,我是杰克,

我会问问题让我感到困惑 当我做了 custom_login.PHP用于自定义登录模板 custom_register.PHP用于自定义注册模板

在localhost上工作正常,但在实时版本上 custom_login.PHP无法正常工作(可以正确显示,但不能登录用户或将其重定向到主页) custom_register.PHP可以正常工作,当用户填写字段时,该字段保存在用户表上 ,但是也会在从 custom-register.PHP custom-login.PHP

本地主机7.2.9上的PHP版本,但实时版本为7.3.15 即时通讯不考虑来自Verison的问题,因为登记表工作正常吗?你们可以告诉我idk

我试图在 wp-config.php

添加
define( 'WP_HOME','http://example.com' ); define( 'WP_SITEURL','http://example.com' );

效果不佳我也删除了.htaccess ,但效果不佳;(

要点在于,localhost中的所有功能都无法完美运行!

custom_login.PHP

<?PHP
/**
 *
 * Template name: login-page 
 *
 */
# Send the user to his account or any page if already logged in.
if ( is_user_logged_in() ) {
    wp_redirect( home_url('/account/') );
}
# Get login error messages.
$login_errors = (isset($_GET['user-login']) ) ? $_GET['user-login'] : 0;     
if ( $_POST['action'] == 'log-in' ) {
    # Submit the user login inputs
    $login = wp_login( $_POST['user-name'],$_POST['password'] );
    $login = wp_signon( array( 'user_login' => $_POST['user-name'],'user_password' => $_POST['password'],'remember' => $_POST['remember-me'] ),false );
    # Redirect to account page after successful login.
    if ( $login->ID ) {
        wp_redirect( home_url('account') );      
    }  
} 
// Exit if accessed directly
if ( !defined('ABSPATH')) exit;
?>
<!DOCTYPE html>
<html <?phP Language_attributes(); ?>>
<head>
<Meta name="viewport" content="width=device-width,initial-scale=1">
<?PHP
wp_head();
?>
</head>
<body>
<?PHP if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
<div class="container text-right" style="position: absolute;
top:50%;left:50%;transform:translate(-50%,-50%);" dir="rtl">
<div class="row justify-content-center">
<div class="col-xl-10">
<div class="card border-0">
<div class="card-body p-0">
<div class="row no-gutters">
<div class="col-lg-6">
<div class="p-5">
<form action="<?PHP the_permalink(); ?>" method="post" class="sign-in">
<div class="form-group">
<label for="user-name"><i class="fas fa-user ml-2 mb-2"></i>Username / email address</label>
<input type="text" name="user-name" id="user-name" class="form-control" value="<?PHP echo wp_specialchars( $_POST['user-name'],1 ); ?>" autocomplete="off" required />
</div>
<div class="form-group mb-5">
<label for="exampleInputPassword1"><i class="fas fa-lock ml-2 mb-2"></i>Password</label>
<input type="password" name="password" class="form-control" id="password" autocomplete="off" required  />
</div>
<button type="submit" name="submit" value="<?PHP _e('Log in'); ?>" class="btn btn-theme">login</button>
<input type="hidden" name="action" value="log-in" />
</form>
</div>
</div>
<div class="col-lg-6 d-none d-lg-inline-block">
<div class="account-block rounded-right">
<div class="overlay rounded-right"></div>
<div class="account-testimonial">
<a href="<?PHP bloginfo('url'); ?>"><img src="<?PHP bloginfo('template_directory');?>/assets/img/logoar.png" style="max-width:200px;bottom:0;position:absolute;"></a>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="text-white text-center mt-3 mb-0">don't have an account yet?<a href="<?PHP bloginfo('url'); ?>/register" class="text-white mr-1 font-weight-bold">register new one for free!</a></p>
</div>
</div>
</div>
<?PHP endwhile; ?>
</body>
</html>

custom_register.PHP

<?PHP
/**
 *
 * Template name: register-page 
 *
 */
global $wpdb,$user_ID;  

if ( is_user_logged_in() ) {
    wp_redirect( home_url('/account/') );
}

if (isset($_POST['user_registeration']))
{
    global $reg_errors;
    $reg_errors = new WP_Error;
    $username = $_POST['username'];
    $useremail = $_POST['useremail'];
    $password = $_POST['password'];
    $phonenumber = esc_html($_POST['phonenumberxc']);
    
    
    if(empty( $username ) || empty( $useremail ) || empty($password))
    {
        $reg_errors->add('field','most fill all fields');
    }    
    if ( strlen( $username ) <= 5 )
    {
        $reg_errors->add('username_length','username most be at lest 6 letters' );
    }
    if ( username_exists( $username ) )
    {
        $reg_errors->add('user_name','this name used in onther account,please chose new one');
    }
    if ( ! validate_username( $username ) )
    {
        $reg_errors->add( 'username_invalid','username invalid' );
    }
    if ( !is_email( $useremail ) )
    {
        $reg_errors->add( 'email_invalid','email you added invalid' );
    }
    
    if ( email_exists( $useremail ) )
    {
        $reg_errors->add( 'email','the email you added existed in another account,please add new one.' );
    }
    if ( strlen( $password ) <= 5 ) {
        $reg_errors->add( 'password','your password must be at lest 6 letters and numbers' );
    }
    
    if (is_wp_error( $reg_errors ))
    { 
        foreach ( $reg_errors->get_error_messages() as $error )
        {
             $signUpError = $error ;
        } 
    }
    
    
    if ( 1 > count( $reg_errors->get_error_messages() ) )
    {
        // sanitize user form input
        global $username,$useremail;
        $username   =   sanitize_user( $_POST['username'] );
        $useremail  =   sanitize_email( $_POST['useremail'] );
        $password   =   esc_attr( $_POST['password'] );
        
        $userdata = array(
            'user_login'    =>   $username,'user_email'    =>   $useremail,'user_pass'     =>   $password,);
        
        $user = wp_insert_user( $userdata );
    }

}

?>
<!DOCTYPE html>
<html <?phP Language_attributes(); ?>>
<head>
<Meta name="viewport" content="width=device-width,initial-scale=1">
<?PHP
wp_head();
?>
</head>
<body>
<div class="container text-right" style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);" dir="rtl">
<div class="row justify-content-center">
<div class="col-xl-10">
<div class="card border-0">
<div class="card-body p-0">
<div class="row no-gutters">
<div class="col-lg-6">
<div class="p-5">
<div class="mb-5">
<h3 class="h4 font-weight-bold text-theme">register new account</h3>
</div>

<form action="<?PHP echo the_permalink() ?>" method="post" name="user_registeration" class="sign-in">
<div class="form-group">
<label for="user-name"><i class="fas fa-user ml-2 mb-2"></i>username</label>
<input type="text" name="username" id="user-name" class="form-control" autocomplete="off" required />
</div>

<div class="form-group">
<label for="user-password"><i class="fas fa-lock ml-2 mb-2"></i>password</label>
<input type="password" name="password" id="user-password" class="form-control" autocomplete="off" required />
</div>

<div class="form-group ">
<label for="email-address"><i class="fas fa-at ml-2 mb-2"></i>email address</label>
<input type="email" name="useremail" class="form-control" id="email-address" autocomplete="off" required  />
</div>

<div class="form-group mb-5">
<label for="phonenumber"><i class="fas fa-mobile-alt ml-2 mb-2"></i>phone number</label>
<input type="text" name="phonenumber" class="form-control" id="phonenumber" autocomplete="off"  />
</div>

<button type="submit" name="user_registeration" class="btn btn-theme">create new account!</button>

</form>
</div>
</div>
<div class="col-lg-6 d-none d-lg-inline-block">
<div class="account-block rounded-right">
<div class="overlay rounded-right"></div>
<div class="account-testimonial">
<a href="<?PHP bloginfo('url'); ?>"><img src="<?PHP bloginfo('template_directory');?>/assets/img/logoar.png" style="max-width:200px;bottom:0;position:absolute;"></a></div>
</div>
</div>
</div>
</div>
<!-- end card-body -->
</div>
<!-- end card -->
<p class="text-white text-center mt-3 mb-0">already have an account?<a href="<?PHP bloginfo('url'); ?>/login" class="text-white mr-1 font-weight-bold">login Now!</a></p>
<!-- end row -->
</div>
<!-- end col -->
</div>
<!-- Row -->
</div>
</body>
</html>

funcation.PHP 进行登录注册

//// login - register new page
function redirect_login_page() {

    $login_page  = home_url( '/member-dashboard/' );  
    $register_page  = home_url( '/register/' );  
    $page_viewed = basename($_SERVER['REQUEST_URI']);  
    // login
    if( $page_viewed == "wp-login.PHP" && $_SERVER['REQUEST_METHOD'] == 'GET') {  
        wp_redirect($login_page);  
        exit;  
    } 
    // regiser
    if( $page_viewed == "wp-login.PHP?action=register" && $_SERVER['REQUEST_METHOD'] == 'GET') {
    wp_redirect($register_page);
    exit;
  }
}  
add_action('init','redirect_login_page');

function login_Failed() {
    $login_page  = home_url( '/member-dashboard/' );  
    wp_redirect( $login_page . '?user-login=Failed' );  
    exit;  
}  
add_action( 'wp_login_Failed','login_Failed' );  
 
function verify_username_password( $user,$username,$password ) {  

    $login_page  = home_url( '/member-dashboard/' );  
    if( $username == "" || $password == "" ) {  
        wp_redirect( $login_page . "?user-login=empty" );  
        exit;  
    }  
}  
add_filter( 'authenticate','verify_username_password',1,3);  


function logout_page() {

    $login_page  = home_url( '/member-dashboard/' );  
    wp_redirect( $login_page . "?user-login=false" );  
    exit;  
}  
add_action('wp_logout','logout_page');
//end login register new page


// no access to wp-admin except admin start
function ace_block_wp_admin() {
    if ( is_admin() && ! current_user_can( 'administrator' ) && ! ( defined( 'DOING_AJAX' ) && DOING_AJAX ) ) {
        wp_safe_redirect( home_url() );
        exit;
    }
}
add_action( 'admin_init','ace_block_wp_admin' );
//// no access to wp-admin except admin end

// after register login auto start
function auto_login_new_user( $user_id ) {
    wp_set_current_user($user_id);
    wp_set_auth_cookie($user_id);
    $user = get_user_by( 'id',$user_id );
    do_action( 'wp_login',$user->user_login ); //`[Codex Ref.][1]
    wp_redirect(  home_url( '/account/' ) );
    exit;
}
add_action( 'user_register','auto_login_new_user' );
// after register login auto end

解决方法

您可以使用try catch查找问题

try{
    //your code
} catch (Exception $ex) {
    var_dump($ex->getMessage());
}

并使用var_dump()打印一些变量

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。