Example #1
0
 function __construct($init = NULL, $aliases = NULL, $name = NULL)
 {
     $this->key2values = [];
     $this->value2key = [];
     $this->all_sub_keys = [];
     $this->level = [];
     $this->simple_keys = [];
     $this->recursive_keys = [];
     $this->name = $name;
     if ($aliases === NULL) {
         $aliases = [];
     }
     $this->aliases = $aliases;
     #echo "\$init:\n";
     #var_dump($init);
     if ($init !== NULL) {
         foreach ($init as $k => $v) {
             if (!is_array($v)) {
                 _die("bad type, not array");
             }
             if (is_vec($v)) {
                 $this->simple_keys[] = $k;
                 register2($this, $k, $v);
             } else {
                 $this->recursive_keys[] = $k;
                 foreach ($v as $_ => &$v_) {
                     register($this, $k, $_);
                     #echo "\$v_:\n";
                     #var_dump($v_);
                     if (!ISDEPATH($v_)) {
                         $v_ = DEPATH($v_, $aliases);
                     }
                     $this->all_sub_keys = array_merge($this->all_sub_keys, $v_->all_sub_keys);
                     register3($this, $v_->key2values);
                 }
             }
             $this->level[$k] = $v;
         }
     }
     # Sort and remove duplicates
     $this->all_sub_keys = array_values(array_unique($this->all_sub_keys));
     foreach (array_keys($this->key2values) as $k) {
         $this->key2values[$k] = array_unique($this->key2values[$k]);
     }
 }
Example #2
0
$other = array('sex' => $gender, 'mediaUID' => $mediaUID, 'mediaID' => $userinfo['mediaID']);
//判断用户是否已同步,
$result = $db->getRow("select * from  {$ecs->table($user->user_table)} where mediaUID='{$mediaUID}' and  mediaID={$userinfo['mediaID']}");
if ($result) {
    //已同步
    $sdf = $result['user_name'];
    $password = $result['password'];
    //设置成登录状态
    $GLOBALS['user']->set_session($sdf);
    $GLOBALS['user']->set_cookie($sdf);
    update_user_info();
    recalculate_price();
    $ucdata = isset($user->ucdata) ? $user->ucdata : '';
    show_message($_LANG['login_success'] . $ucdata, array($_LANG['back_up_page'], $_LANG['back_home']), array('index.php', 'user.php'), 'info');
}
if (register2($sdf, $password, $email, $userbak, $other) !== false) {
    /*把新注册用户的扩展信息插入数据库*/
    $sql = 'SELECT id FROM ' . $ecs->table('reg_fields') . ' WHERE type = 0 AND display = 1 ORDER BY dis_order, id';
    //读出所有自定义扩展字段的id
    $fields_arr = $db->getAll($sql);
    $extend_field_str = '';
    //生成扩展字段的内容字符串
    foreach ($fields_arr as $val) {
        $extend_field_index = 'extend_field' . $val['id'];
        if (!empty($_POST[$extend_field_index])) {
            $temp_field_content = strlen($_POST[$extend_field_index]) > 100 ? mb_substr($_POST[$extend_field_index], 0, 99) : $_POST[$extend_field_index];
            $extend_field_str .= " ('" . $_SESSION['user_id'] . "', '" . $val['id'] . "', '" . $temp_field_content . "'),";
        }
    }
    $extend_field_str = substr($extend_field_str, 0, -1);
    if ($extend_field_str) {