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/propman/u_other_propman.php
<?php
if (isset($_REQUEST['checking_api_file'])) {
    exit();
}

$identity_card_results = $wpdb->get_results("select identity_card from keylab_users where propman_id != " . $_REQUEST['propman_id']);

if (!empty($_REQUEST['identity_card'])) {
    foreach ($identity_card_results as $value) {
        if (!empty($value->identity_card) && $value->identity_card == trim($_REQUEST['identity_card'])) {
            $rv->status = false;
            $rv->code = -2;
            $rv->error = 'identity_card diff';

            exit(json_encode($rv));
        }
    }
}

$category_array = [
    'otherPropman',
];
if (isset($_REQUEST['category']) && in_array($_REQUEST['category'], $category_array)) {
    $category = $_REQUEST['category'];
    $num = $wpdb->get_var("SELECT MAX(`index_id`) FROM `keylab_users` WHERE `category` = '$category'");
    $num = intval($num) + 1;
}

$new_data = array(
    'status' => empty($_REQUEST['status']) ? "正常" : $_REQUEST['status'],
    'index_id' => $num,
    'type' => $_REQUEST['type'],
    'category' => $_REQUEST['category'],
    'name_zh' => $_REQUEST['name_zh'],
    'name_en' => $_REQUEST['name_en'],
    'address_zh' => $_REQUEST['address_zh'],
    'address_en' => $_REQUEST['address_en'],
    'login_tel' => $_REQUEST['login_tel'],
    'backup_tel' => $_REQUEST['backup_tel'],
    'email' => $_REQUEST['email'],
    'fax' => $_REQUEST['fax'],
    'created_by' => $_REQUEST['created_by']
);

if (!empty($_REQUEST['property_id'])) {
    $new_data['custom_id'] = intval($_REQUEST['property_id']);
}
if (!empty($_REQUEST['position'])) {
    $new_data['position'] = $_REQUEST['position'];
}
if (!empty($_REQUEST['identity_card'])) {
    $new_data['identity_card'] = $_REQUEST['identity_card'];
}

$status = $wpdb->update("keylab_users", $new_data, array('user_id' => $_POST['user_id']));
if ($status === false) {
    $rv->status = false;
    $rv->error = $wpdb->last_error;
} else {

    $status = false;
    $old_data = $wpdb->get_results("select * from keylab_property_other_propman where propman_id = " . $_REQUEST['propman_id']);

    $propman_status = [
        '在職', '離職'
    ];
    if (empty($_REQUEST['propman_status'])) {
        $new_data = array(
            'property_id' => $_REQUEST['property_id'],
            'user_id' => $_REQUEST['user_id'],
            'position' => $_REQUEST['position'],
            'remarks' => $_REQUEST['remarks'],
            'MPF_date' => $_REQUEST['MPF_date'],
            'MPF_file' => serialize($_REQUEST['MPF_file']),
        );
    } else {

        if (in_array($_REQUEST['propman_status'], $propman_status)) {
            if ($old_data[0]->propman_status == '離職' && $_REQUEST['propman_status'] == '在職') {

                $new_data = array(
                    'property_id' => $_REQUEST['property_id'],
                    'user_id' => $_REQUEST['user_id'],
                    'position' => $_REQUEST['position'],
                    'propman_status' => $_REQUEST['propman_status'],
                    'propman_day' => $_REQUEST['propman_day'],
                    'remarks' => $_REQUEST['remarks'],
                    'MPF_date' => $_REQUEST['MPF_date'],
                    'MPF_file' => serialize($_REQUEST['MPF_file']),
                );
            } else if ($old_data[0]->propman_status == '在職' && $_REQUEST['propman_status'] == '離職') {
                $propman_day = '0000-00-00';

                $new_data = array(
                    'property_id' => $_REQUEST['property_id'],
                    'user_id' => $_REQUEST['user_id'],
                    'position' => $_REQUEST['position'],
                    'propman_status' => $_REQUEST['propman_status'],
                    'propman_day' => $propman_day,
                    'MPF_notifi_day' => '0000-00-00',
                    'remarks' => $_REQUEST['remarks'],
                    'MPF_date' => $_REQUEST['MPF_date'],
                    'MPF_file' => serialize($_REQUEST['MPF_file']),
                );
            } else {
                $new_data = array(
                    'property_id' => $_REQUEST['property_id'],
                    'user_id' => $_REQUEST['user_id'],
                    'position' => $_REQUEST['position'],
                    'propman_day' => $_REQUEST['propman_day'],
                    'propman_status' => $_REQUEST['propman_status'],
                    'remarks' => $_REQUEST['remarks'],
                    'MPF_date' => $_REQUEST['MPF_date'],
                    'MPF_file' => serialize($_REQUEST['MPF_file']),
                );
            }
        } else {
            $rv->status = false;
            $rv->code = -3;
            $rv->error = 'propman_status undefined';

            exit(json_encode($rv));
        }
    }

    $status = $wpdb->update("keylab_property_other_propman", $new_data, array('propman_id' => $_REQUEST['propman_id']));
    $sql = $wpdb->last_query;
    $temp_status = $status;


    if ($status === false) {
        $rv->status = false;
        $rv->code = -1;
        $rv->error = $wpdb->last_error;
    } else {
        $rv->status = true;
        $rv->code = 0;
    }

    //log
    keylab_data_log_by_user2($temp_status, $old_data[0], $new_data, $sql, "keylab_property_other_propman", $_POST['propman_id']);
}

// $rv->wpdb = $wpdb;


exit(json_encode($rv));