HEX
Server: Apache/2.4.59 (Debian)
System: Linux keymana 4.19.0-21-cloud-amd64 #1 SMP Debian 4.19.249-2 (2022-06-30) x86_64
User: lijunjie (1003)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/wp-content/themes/ormedia/keylabData/relate_user/c_relate_user.php
<?php
if(isset($_REQUEST['checking_api_file'])){
    exit();
}

$admin_wp_id = $_REQUEST['admin_wp_id'];
$user_login = $_REQUEST['user_login'];
$user_pass = $_REQUEST['user_pass'];
$user_email = empty($_REQUEST['user_email'])?$user_login.'@noemail.com':$_REQUEST['user_email'];
$user_role = $_REQUEST['user_role'];
$all_property = empty($_REQUEST['all_property'])?'0':$_REQUEST['all_property'];
$real_property_list = implode(',', $_REQUEST['real_property_list']);

$new_data = array(
    'admin_wp_id' => $_REQUEST['admin_wp_id'],
    'user_login' => $_REQUEST['user_login'],
    'user_pass' => $_REQUEST['user_pass'],
    'user_email' => $user_email,
    'user_role' => $_REQUEST['user_role']
);

$role_arr = [];
$roles = $wp_roles->roles;
foreach($roles as $key=>$value){
    array_push($role_arr, $key);
}

if(strlen($user_login) < 3 || strlen($user_login) > 20){
    $rv->status = false;
    $rv->msg = "用戶名需大於3位且小於20位";

    exit(json_encode($rv));
}

if(strlen($user_pass) < 8 || strlen($user_pass) > 20){
    $rv->status = false;
    $rv->msg = "密碼需大於8位且小於20位";

    exit(json_encode($rv));
}

if(in_array($user_role, $role_arr)){
    if( filter_var($user_email, FILTER_VALIDATE_EMAIL) && !email_exists( $user_email ) ){
    if ( isset( $user_login ) && isset( $user_pass ) && isset( $user_email ) ) {
        if ( !username_exists( $user_login ) ) { 
            $user_id = wp_create_user( $user_login, $user_pass, $user_email );
            $sql = $wpdb->last_query;
            $log_id = $wpdb->insert_id;

            
            if ( is_int( $user_id ) ) {
                $user_object = new WP_User( $user_id );
                $user_object->set_role( $user_role );
                update_user_meta($user_id, 'relate_wp_id', $admin_wp_id);
                update_user_meta($user_id , 'real_property_id', $real_property_list);
                update_user_meta($user_id , 'all_property', $all_property);

                $rv->status = true;
                $rv->msg = "success";
            }else{
                $rv->status = false;
                $rv->msg = "處理錯誤";
            }
        }else{
            $rv->status = false;
            $rv->msg = "該用戶名已被註冊";
        }
    }
    }else{
        $rv->status = false;
        $rv->msg = "郵箱已存在或格式錯誤";
    }
}else{
    $rv->status = false;
    $rv->msg = "權限設置錯誤";
}

//log
//keylab_data_log_by_user($status, false, $new_data, $sql);
//keylab_data_log_by_user2($status, false, $new_data, $sql, "keylab_property_user",$log_id);


exit(json_encode($rv));
?>