Пример #1
0
 function Add()
 {
     global $_PB_CACHE, $memberfield, $phpb2b_auth_key, $if_need_check;
     $error_msg = array();
     if (empty($this->params['data']['member']['username']) or empty($this->params['data']['member']['userpass']) or empty($this->params['data']['member']['email'])) {
         return false;
     }
     $space_name = $this->params['data']['member']['username'];
     $userpass = $this->params['data']['member']['userpass'];
     $this->params['data']['member']['userpass'] = $this->authPasswd($this->params['data']['member']['userpass']);
     if (empty($this->params['data']['member']['space_name'])) {
         $this->params['data']['member']['space_name'] = PbController::toAlphabets($space_name);
     }
     //Todo:
     $uip = pb_ip2long(pb_getenv('REMOTE_ADDR'));
     if (empty($uip)) {
         pheader("location:" . URL . "redirect.php?message=" . urlencode(L('sys_error')));
     }
     $this->params['data']['member']['last_login'] = $this->params['data']['member']['created'] = $this->params['data']['member']['modified'] = $this->timestamp;
     $this->params['data']['member']['last_ip'] = pb_get_client_ip('str');
     $email_exists = $this->checkUserExistsByEmail($this->params['data']['member']['email']);
     if ($email_exists) {
         flash("email_exists", null, 0);
     }
     $if_exists = $this->checkUserExist($this->params['data']['member']['username']);
     if ($if_exists) {
         flash('member_has_exists', null, 0);
     } else {
         $this->save($this->params['data']['member']);
         $key = $this->table_name . "_id";
         if ($this->ins_passport) {
             $this->passport(array($this->{$key}, $this->params['data']['member']['username'], $userpass, $this->params['data']['member']['email']), "reg");
         }
         $memberfield->primaryKey = "member_id";
         $memberfield->params['data']['memberfield']['member_id'] = $this->{$key};
         $memberfield->params['data']['memberfield']['reg_ip'] = $this->params['data']['member']['last_ip'];
         $memberfield->save($memberfield->params['data']['memberfield']);
         if (!$if_need_check) {
             $user_info['id'] = $this->{$key};
             $user_info['username'] = $this->params['data']['member']['username'];
             $user_info['userpass'] = $userpass;
             $user_info['useremail'] = $this->params['data']['member']['email'];
             $user_info['lifetime'] = $this->timestamp + 86400;
             $user_info['is_admin'] = 0;
             $this->putLoginStatus($user_info);
         }
     }
     return true;
 }
Пример #2
0
function pb_get_client_ip($type = "long")
{
    if (getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $onlineip = getenv('HTTP_CLIENT_IP');
    } elseif (getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $onlineip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif (getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $onlineip = getenv('REMOTE_ADDR');
    } elseif (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $onlineip = $_SERVER['REMOTE_ADDR'];
    }
    preg_match("/[\\d\\.]{7,15}/", $onlineip, $onlineipmatches);
    $onlineip = $onlineipmatches[0] ? $onlineipmatches[0] : 'unknown';
    if ($onlineip == 'unknown') {
        return $onlineip;
    }
    if ($type == "long") {
        return pb_ip2long($onlineip);
    } else {
        return $onlineip;
    }
}