* @since 1.0 */ class UserFrom extends Service { protected $_userFromModelName = '\fecshop\models\mysqldb\UserFrom'; protected $_userFromModel; public function init() { parent::init(); list($this->_userFromModelName, $this->_userFromModel) = \Yii::mapGet($this->_userFromModelName); } public function getSystemLogModel(){ return $this->_userFromModel; } public function getPrimaryKey() { return 'id'; } /** * @param $data * @return bool * Save user_from_data */ public function saveUserData($data){ if(!is_array($data)){ Yii::$service->helper->errors->add('UserFromData is not exist', '1'); return false; } $user_ip = $data['user_ip']; $user_url = $data['user_url']; $user_from_url = $data['user_from_url']; $user_browser = $data['user_browser']; $user_from_time = date("Y-m-d H:i:s",time()); $model = new $this->_userFromModelName(); $model->user_ip = $user_ip; $model->user_url = $user_url; $model->user_from_url = $user_from_url; $model->user_from_time = $user_from_time; $model->user_browser = $user_browser; $model->save(); return true; } /** * @param $where * @return bool * get user from data */ public function getUserData($where){ if(!is_array($where)){ Yii::$service->helper->errors->add('UserFromDataWhere is not exist', '1'); return false; } $query = $this->_userFromModel->find()->asArray(); $query->where($where); $data = $query->all(); return $data; } public function savePageData(){ $data = array(); $data['user_ip'] = $this->getIp(); $data['user_url'] = $this->getUrl(); $data['user_from_url'] = $this->getFromUrl(); $data['user_browser'] = $this->getBrowser(); $this->saveUserData($data); } public function getIp(){ $ip=false; if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $ip = $_SERVER["HTTP_CLIENT_IP"]; } if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']); if ($ip) { array_unshift($ips, $ip); $ip = FALSE; } for ($i = 0; $i < count($ips); $i++) { if (!eregi ("^(10│172.16│192.168).", $ips[$i])) { $ip = $ips[$i]; break; } } } return ($ip ? $ip : $_SERVER['REMOTE_ADDR']); } public function getIpContent($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); return $output; } public function getBrowser(){ $agent=$_SERVER["HTTP_USER_AGENT"]; if(strpos($agent,'MSIE')!==false || strpos($agent,'rv:11.0')) return "ie"; else if(strpos($agent,'Firefox')!==false) return "firefox"; else if(strpos($agent,'Chrome')!==false) return "chrome"; else if(strpos($agent,'Opera')!==false) return 'opera'; else if((strpos($agent,'Chrome')==false)&&strpos($agent,'Safari')!==false) return 'safari'; else return 'unknown'; } public function getFromUrl(){ if(isset($_SERVER['HTTP_REFERER'])) return $_SERVER['HTTP_REFERER']; else if(strpos($_SERVER['QUERY_STRING'], '?')) return $_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; else return $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; } public function getUrl(){ return $_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; } }