admin管理员组

文章数量:1336725

I created a registration form myself and now I need to auto login after registration but I see the following error that belongs to a plugin. I know I should not speak about plugin here But my question is: why too few arguments? now I think every thing is OK in registration.

#error

Fatal error: Uncaught ArgumentCountError: Too few arguments to function rcp_log_ip_and_last_login_date(), 1 passed in C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php on line 287 and exactly 2 expected in C:\xampp\htdocs\endengsms\wp-content\plugins\restrict-content-pro\includes\login-functions.php:318 Stack trace: #0 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(287): rcp_log_ip_and_last_login_date('01234567894') #1 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters('', Array) #2 C:\xampp\htdocs\endengsms\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\endengsms\wp-content\themes\endengsms\functions.php(309): do_action('wp_login', '01234567894') #4 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(287): auto_login_new_user(25) #5 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #6 C:\xampp\htdocs\endengsms\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #7 C:\xampp\htdocs\endengsms\wp in C:\xampp\htdocs\endengsms\wp-content\plugins\restrict-content-pro\includes\login-functions.php on line 318  

.
#my code in registration form
.

$has_error = false;
$has_success = false;
$message = array();
    
if(isset($_POST['SubmitSignUpEE'])){
    if(! isset($_POST['security']) || ! wp_verify_nonce($_POST['security'],'mysignup-nonce')){
        print('<p class="kharabkarinakon">Don't sabotage</p>');
    }else{
            
        $firstname = sanitize_text_field($_POST['FirstnameSignUpEE']);
        $lastname = sanitize_text_field($_POST['LastnameSignUpEE']);
        $usermobile = sanitize_text_field($_POST['UserMobileSignUpEE']);
        $repeatusermobile = sanitize_text_field($_POST['RepeatUserMobileSignUpEE']);
        $captchasecuritysig = sanitize_text_field($_POST['signupsecurityEE']);

            
        if($firstname == '' || $lastname == '' || $usermobile == '' || $repeatusermobile == ''){
            $has_error = true;
            $message[] = "please fill all fields";
        }
        
        elseif (strtolower($_SESSION['captcha']['code']) <> strtolower($captchasecuritysig)) {

                $has_error = true;
                $message[] = "incorrect captcha";
        }
        else{
            $info = array(
                //'user_email'  => $email,
                'user_login'    => $usermobile,
                'user_pass'     => $usermobile,
                'first_name'    => $firstname,
                'last_name'     => $lastname,
                'display_name'  => $firstname.' '.$lastname,
            );
            $newUserID = wp_insert_user($info);
            
            if (is_wp_error($newUserID)) {

                $has_error = true;
                $message[] = "there is an error";

            } else {
                
                
                $site_url = get_site_url()."/myloginpage/";
                
                $has_success = true;
                $message[] = "Successful registration";
                
                
                wp_set_current_user( $newUserID, $usermobile );
                wp_set_auth_cookie( $newUserID );
                do_action( 'wp_login', $usermobile );
                    
                
                $redirecturl = site_url('/?signup=true&login=too');
                wp_redirect( $redirecturl );
                exit;

            }
            
            global $wpdb;
            $key = $wpdb->get_row($wpdb->prepare("SELECT ID,user_activation_key FROM $wpdb->users WHERE user_login = %s",$usermobile));
            add_user_meta($key->ID,'usermobilenum',$usermobile);
            
            

        }
    }
}

I created a registration form myself and now I need to auto login after registration but I see the following error that belongs to a plugin. I know I should not speak about plugin here But my question is: why too few arguments? now I think every thing is OK in registration.

#error

Fatal error: Uncaught ArgumentCountError: Too few arguments to function rcp_log_ip_and_last_login_date(), 1 passed in C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php on line 287 and exactly 2 expected in C:\xampp\htdocs\endengsms\wp-content\plugins\restrict-content-pro\includes\login-functions.php:318 Stack trace: #0 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(287): rcp_log_ip_and_last_login_date('01234567894') #1 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters('', Array) #2 C:\xampp\htdocs\endengsms\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #3 C:\xampp\htdocs\endengsms\wp-content\themes\endengsms\functions.php(309): do_action('wp_login', '01234567894') #4 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(287): auto_login_new_user(25) #5 C:\xampp\htdocs\endengsms\wp-includes\class-wp-hook.php(311): WP_Hook->apply_filters(NULL, Array) #6 C:\xampp\htdocs\endengsms\wp-includes\plugin.php(478): WP_Hook->do_action(Array) #7 C:\xampp\htdocs\endengsms\wp in C:\xampp\htdocs\endengsms\wp-content\plugins\restrict-content-pro\includes\login-functions.php on line 318  

.
#my code in registration form
.

$has_error = false;
$has_success = false;
$message = array();
    
if(isset($_POST['SubmitSignUpEE'])){
    if(! isset($_POST['security']) || ! wp_verify_nonce($_POST['security'],'mysignup-nonce')){
        print('<p class="kharabkarinakon">Don't sabotage</p>');
    }else{
            
        $firstname = sanitize_text_field($_POST['FirstnameSignUpEE']);
        $lastname = sanitize_text_field($_POST['LastnameSignUpEE']);
        $usermobile = sanitize_text_field($_POST['UserMobileSignUpEE']);
        $repeatusermobile = sanitize_text_field($_POST['RepeatUserMobileSignUpEE']);
        $captchasecuritysig = sanitize_text_field($_POST['signupsecurityEE']);

            
        if($firstname == '' || $lastname == '' || $usermobile == '' || $repeatusermobile == ''){
            $has_error = true;
            $message[] = "please fill all fields";
        }
        
        elseif (strtolower($_SESSION['captcha']['code']) <> strtolower($captchasecuritysig)) {

                $has_error = true;
                $message[] = "incorrect captcha";
        }
        else{
            $info = array(
                //'user_email'  => $email,
                'user_login'    => $usermobile,
                'user_pass'     => $usermobile,
                'first_name'    => $firstname,
                'last_name'     => $lastname,
                'display_name'  => $firstname.' '.$lastname,
            );
            $newUserID = wp_insert_user($info);
            
            if (is_wp_error($newUserID)) {

                $has_error = true;
                $message[] = "there is an error";

            } else {
                
                
                $site_url = get_site_url()."/myloginpage/";
                
                $has_success = true;
                $message[] = "Successful registration";
                
                
                wp_set_current_user( $newUserID, $usermobile );
                wp_set_auth_cookie( $newUserID );
                do_action( 'wp_login', $usermobile );
                    
                
                $redirecturl = site_url('/?signup=true&login=too');
                wp_redirect( $redirecturl );
                exit;

            }
            
            global $wpdb;
            $key = $wpdb->get_row($wpdb->prepare("SELECT ID,user_activation_key FROM $wpdb->users WHERE user_login = %s",$usermobile));
            add_user_meta($key->ID,'usermobilenum',$usermobile);
            
            

        }
    }
}
Share Improve this question asked Jun 23, 2020 at 9:14 user190460user190460 1
Add a comment  | 

1 Answer 1

Reset to default 0

you should do so:

...} else {
                
                
                $site_url = get_site_url()."/myloginpage/";
                
                $has_success = true;
                $message[] = "Successful registration";
                
                global $wpdb;
                $key = $wpdb->get_row($wpdb->prepare("SELECT ID,user_activation_key FROM $wpdb->users WHERE user_login = %s",$usermobile));
                add_user_meta($key->ID,'usermobilenum',$usermobile);

                wp_set_current_user( $newUserID, $usermobile );
                wp_set_auth_cookie( $newUserID );
                //do_action( 'wp_login', $usermobile );
                    
                
                $redirecturl = site_url('/?signup=true&login=too');
                wp_redirect( $redirecturl );
                exit;

            }

        }
    }
}

本文标签: Problem in auto login after registration