Visualizzazione risultati 1 fino 3 di 3

Discussione: Errore "Access to undeclared static property"

  1. #1
    Guest

    Predefinito Errore "Access to undeclared static property"

    Salve a tutti, da un pò di tempo sto utilizzando uno script per ricavarmi gli ip, fino ad oggi ha funzionato tranquillamente, da oggi invece esce questo errore: Access to undeclared static property: IpUser::$ip in *percorso file* on line 46

    lo script è questo:

    Codice PHP:
    <?php

    class IpUser
    {
    public function
    get_ip_address() {
    // check for shared internet/ISP IP
    if (!empty($_SERVER['HTTP_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_CLIENT_IP']))
    return
    $_SERVER['HTTP_CLIENT_IP'];

    // check for IPs passing through proxies
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    // check if multiple ips exist in var
    $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    foreach (
    $iplist as $ip) {
    if (
    $this->validate_ip($ip))
    return
    $ip;
    }
    }
    if (!empty(
    $_SERVER['HTTP_X_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_X_FORWARDED']))
    return
    $_SERVER['HTTP_X_FORWARDED'];
    if (!empty(
    $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']))
    return
    $_SERVER['HTTP_X_CLUSTER_CLIENT_IP'];
    if (!empty(
    $_SERVER['HTTP_FORWARDED_FOR']) && $this->validate_ip($_SERVER['HTTP_FORWARDED_FOR']))
    return
    $_SERVER['HTTP_FORWARDED_FOR'];
    if (!empty(
    $_SERVER['HTTP_FORWARDED']) && $this->validate_ip($_SERVER['HTTP_FORWARDED']))
    return
    $_SERVER['HTTP_FORWARDED'];

    // return unreliable ip since all else failed
    return $_SERVER['REMOTE_ADDR'];
    }

    /**
    * Ensures an ip address is both a valid IP and does not fall within
    * a private network range.
    *
    * @access public
    * @param string $ip
    */
    public function validate_ip($ip) {
    if (
    filter_var($ip, FILTER_VALIDATE_IP,
    FILTER_FLAG_IPV4 |
    FILTER_FLAG_IPV6 |
    FILTER_FLAG_NO_PRIV_RANGE |
    FILTER_FLAG_NO_RES_RANGE) === false)
    return
    false;
    self::$ip = $ip;
    return
    true;
    }
    }
    ?>
    e lo richiamo così:
    Codice PHP:
    $tmp = new IpUser();
    $ip = $tmp->get_ip_address();
    idee?
    Grazie anticipatamente!

    P.S: oggi è stato attivato di default CloudFlare(ho ricevuto una email che lo diceva), potrebbe dipendere da quello? perchè è l'unica modifica fatta al mio sito...

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    PHP ha detto tutto; linea 46:
    Codice PHP:
    self::$ip = $ip;
    nella classe non hai dichiarato nessuna variabile statica di nome ip.

    Dato che non l'hai dichiarata e non la usi in nessun altro metodo, potresti benissimo cancellare quella riga.

  3. #3
    Guest

    Predefinito

    Ti ringrazio :) lo script non è mio...l'ho trovato sulla rete...probabilmente era incompleto!

    p.s: gbtchiaravalle ha chiesto a me di postare per lui, lo dico prima che qualcuno chieda qualcosa...non sono pazzo xD
    Ultima modifica di furion : 24-01-2014 alle ore 18.25.52

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •