Skip to content

Commit

Permalink
Merge branch 'release/2.3'
Browse files Browse the repository at this point in the history
# Conflicts:
#	composer.json
#	index.php
  • Loading branch information
fengkaijia committed Jun 8, 2019
2 parents 6443854 + 9fb595b commit 67b70e9
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 8 deletions.
17 changes: 13 additions & 4 deletions application/controllers/Account.php
Expand Up @@ -1094,6 +1094,7 @@ function activity()

$this->load->helper('ip');
$this->load->helper('date');
$this->load->helper('session');

//获取记录
$this->db->where('operator', uid());
Expand All @@ -1104,11 +1105,19 @@ function activity()

if($query->num_rows() != 0)
{
$data = array();
$sessions = array();

foreach($query->result_array() as $data)
{
//检查是否仍然在线
$data['value'] = json_decode($data['value'], true);

//自CI 3.0起在同一浏览器上的多次登录可被登记为同一Session
if(in_array($data['value']['session'], $sessions))
continue;
else
$sessions[] = $data['value']['session'];

//检查是否仍然在线
$this->db->where('session', $data['value']['session']);
$check = $this->db->get('session');

Expand All @@ -1134,8 +1143,8 @@ function activity()
$data['current'] = true;

//是否已经关闭
$user_data = session_decode($session['data']);
if(!isset($user_data['halt']) || !$user_data['halt'])
$user_data = session_unserialize($session['data']);
if(isset($user_data['logged_in']) && $user_data['logged_in'])
$active[] = $data;
}
}
Expand Down
3 changes: 2 additions & 1 deletion application/helpers/IP_date_helper.php
Expand Up @@ -12,7 +12,8 @@

/**
* 时间优化函数
* @link http://php.net/manual/en/function.time.php
* @link https://www.php.net/manual/en/function.time.php#89415
* @author Yasmary Mora <yasmary@gmail.com>
* @param int $date UNIX时间戳
* @param boolean $space 是否在数字和文字前增加空格
* @return string 经过优化的时间(如几天前)
Expand Down
7 changes: 4 additions & 3 deletions application/helpers/IP_number_helper.php
Expand Up @@ -12,16 +12,17 @@

/**
* 文件大小去格式化
* @param string 形如 2M 的字符串
* @param string $val 形如 1g、2M 的字符串
* @return int 字节数
*/
function byte_deformat($val)
{
$val = trim($val);

$last = strtolower($val[strlen($val)-1]);

switch($last) {
$val = intval($val);
switch($last)
{
case 'g':
$val *= 1024;
case 'm':
Expand Down
38 changes: 38 additions & 0 deletions application/helpers/session_helper.php
@@ -0,0 +1,38 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
* Session辅助函数
* @author Kaijia Feng <fengkaijia@gmail.com>
* @copyright 2019 Kaijia Feng
* @license Dual-licensed proprietary
* @link http://iplacard.com/
* @package iPlacard
* @since 2.3
*/

/**
* 解析CodeIgniter序列化Session为数组
* @link https://www.php.net/manual/en/function.session-decode.php#108037
* @author Frits van Campen <Frits.vanCampen@moxio.com>
* @param string $session 序列化Session字符串
* @return array Session数组
*/
function session_unserialize($session)
{
$return = array();
$offset = 0;
while($offset < strlen($session))
{
$pos = strpos($session, '|', $offset);
$num = $pos - $offset;
$varname = substr($session, $offset, $num);
$offset += $num + 1;
$data = unserialize(substr($session, $offset));
$return[$varname] = $data;
$offset += strlen(serialize($data));
}
return $return;
}

/* End of file session_helper.php */
/* Location: ./application/helpers/session_helper.php */

0 comments on commit 67b70e9

Please sign in to comment.