Просмотр поста

.
Rakovskiy
The Fast, Secure and Professional - Yii2

Swank, При инициализации свойства, метода конструктор не вызывается.

class client {
public static $ip;
public static $ip_via_proxy;
public static $agent;
public static $is_mobile;
public static $referrer;

public static function init() {

// Получаем UserAgent
 if (isset($_SERVER["HTTP_X_OPERAMINI_PHONE_UA"]) && strlen(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA'])) > 5) {
self::$agent = 'Opera Mini:' . htmlspecialchars(mb_substr(trim($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']), 0, 150));
 } elseif(isset($_SERVER['HTTP_US ER_AGENT'])) {
self::$agent = htmlspecialchars(mb_substr(trim($_SERVER['HTTP_USER_AGENT']), 0, 150));
 } else {
self::$agent = 'Нет записи';
 }

// Получаем IP адреса
        $ip = ip2long($_SERVER['REMOTE_ADDR']) or die('У вас проблемы с ip адресом');
        self::$ip = sprintf("%u", $ip);
      // Ip за проксы
        if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $vars)) {
            foreach ($vars[0] AS $var) {
                $ip_via_proxy = ip2long($var);
                if ($ip_via_proxy && $ip_via_proxy != $ip && !preg_match('#^(10|172\.16|192\.168)\.#', $var)) {
                    self::$ip_via_proxy = sprintf("%u", $ip_via_proxy);
                    break;
                }
            }
        }




}



}


Где нибудь в начале скрипта

client::init();

И потом в любом месте client::$ip;
А вообще правильней разбить всё на методы