function save_online_user($user) { if (SSO_MODE == 'ticket') { $user['ticket'] = PassportModel::generateTicket(); $this->set_ticket($user); $this->set_session($user); } elseif (SSO_MODE == 'session') { $user['ticket'] = PassportModel::generateTicket(); $this->set_session($user); } else { $str = 'abcedfghijklmnopqrstuvwxyz'; $rand_str = $str[rand(0, 25)] . $str[rand(0, 25)] . $str[rand(0, 25)] . $str[rand(0, 25)]; $time = time(); $token = md5(microtime()); $key = md5($user['user'] . $token . $time . $rand_str); $user_arr['user'] = $user['user']; $user_arr['user_id'] = $user['user_id']; $user_arr['user_nickname'] = $user['user_nickname']; $user_arr['user_sex'] = $user['user_sex']; $user_arr['user_email'] = $user['user_email']; $user_arr['user_password'] = $user['user_password']; $user_arr['ticket'] = $key; $enc_info = encrypt(json_encode($user_arr), $key); setcookie('XPPASS_TOKEN', $token, 0, '/', COOKIE_DOMAIN); setcookie('XPPASS_STATE', urlencode($time . '|' . $user['user'] . '|' . $key . '|**|' . $rand_str), 0, '/', COOKIE_DOMAIN); setcookie('XPPASS_INFO', $enc_info, 0, '/', COOKIE_DOMAIN); setcookie('XPPASS_USERNAME', $user['user'], time() + 3600 * 24 * 365 * 10, '/', COOKIE_DOMAIN); setcookie('XPPASS_NICKNAME', urlencode($user['user_nickname']), time() + 3600 * 24 * 365 * 10, '/', COOKIE_DOMAIN); } if ($user['autologin'] == 1) { $this->set_iccard($user); } }