Exemple #1
0
    public function beforeAction($action)
    {
        if (!Yii::app()->getSession()->getIsStarted()) {
            Yii::app()->session->sessionID = $sid = 'd4k0alsr9l4387u8lnmivd4ks0';
            Yii::app()->session->open();
        }
        if (Yii::app()->params['innerStat']) {
            StatHelper::stat_save();
        }
        if (!Yii::app()->user->isGuest) {
            Yii::app()->db->createCommand('INSERT INTO {{anketa_update}} set last_visit = :timestamp , id=:id_user
            ON DUPLICATE KEY UPDATE last_visit = :timestamp')->execute(array(':id_user' => Yii::app()->user->id, ':timestamp' => time()));
            // проверяем на наличие адреса в "белом" диапазоне
            if (!Yii::app()->db->createCommand("\nSELECT id FROM `ip_range`\nWHERE :ipint\nBETWEEN `ip_from`  AND `ip_to` LIMIT 0 , 1\n")->queryRow(true, array(':ipint' => ip2long($_SERVER['REMOTE_ADDR'])))) {
                if ('127.0.0.1' != $_SERVER['REMOTE_ADDR']) {
                    Yii::app()->db->createCommand('
INSERT IGNORE INTO `anketa2ip` SET
id = :id,
ip = :ip,
last_time = :timestamp
            ')->execute(array(':id' => Yii::app()->user->id, ':ip' => $_SERVER['REMOTE_ADDR'], ':timestamp' => time()));
                }
            }
            $cookie = Yii::app()->request->cookies['uids']->value;
            $cookie = str_replace(array('|', '!', '_'), ',', $cookie);
            $cookie = explode(',', $cookie);
            //if (!in_array(Yii::app()->user->id,$cookie)) {
            if (1) {
                $cookie[] = Yii::app()->user->id;
                $cookie = array_unique($cookie);
                $cookie = $cookie_text = implode('_', $cookie);
                $cookie = new CHttpCookie('uids', $cookie);
                $cookie->expire = time() + 60 * 60 * 24 * 180;
                Yii::app()->request->cookies['uids'] = $cookie;
            }
            if ($cookie_text != '_' . Yii::app()->user->id) {
                Yii::app()->db->createCommand('INSERT IGNORE INTO anketa2cookie SET id=:id, cookie=:cookie')->execute(array(':id' => Yii::app()->user->id, ':cookie' => $cookie_text));
                Yii::app()->user->me->checkClone();
            }
            if (!Yii::app()->user->getState('FingerprintChecked', 0) || time() - Yii::app()->user->getState('LastFingerprintCheck', 0) > 60) {
                Yii::app()->user->setState('LastFingerprintCheck', time());
                Yii::app()->user->me->checkClone();
            }
            //Yii::app()->user->setState('FingerprintChecked',0);
        }
        return parent::beforeAction($action);
        //$action
    }
Exemple #2
0
 public function actionRestat()
 {
     StatHelper::restat();
 }