123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- <?php
- /*
- * FecShop file.
- *
- * @link http://www.fecmall.com/
- * @copyright Copyright (c) 2016 FecShop Software LLC
- * @license http://www.fecmall.com/license/
- */
- namespace fecshop\services;
- use Yii;
- /**
- * Order services.
- *
- * @property \fecshop\services\order\Item $item
- *
- * @author Terry Zhao <2358269014@qq.com>
- * @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"];
- }
- }
|