Защита на сесии

Тъкмо го пробвах на localhost и работи. Но на безплатен хост не работи.
lat,lon Какви дани взимат?
 
Еми мога само да гадая за причината. Но най-вероятно е че им е ниска версията на пхп-то, и прави проблем с някоя функция. Безплатните хостинги не струват. Не стават дори и за тестове.
 
lam3r4370 каза:
Можеш да използваш get_browser() , за да вземеш браузъра, вместо getOS и getBrowser методите

Не е толкова просто. Първо ти трябва browscap.ini за да работи а до колкото четох го няма в пхп. Има и още ред други усложнения. Ако не вярваш пробвай.
 
Ако работи на локалхост, а извежда бяла страница на безплатния, вероятно са ти изключени грешките. Провери в error.log-а какви грешки (евентуално) има, за да конкретизираш проблема.
 
Пробвах и на платен хост. И излиза грешка PHP Warning: Invalid argument supplied for foreach() .
PHP:
<?php

            //Инклудваш
            include 'GetIPAddress.php';

            //Създаваш нов обект
            $userInfo = new GetIPAddress();

            //Викаш функцията userInfo() която връща масив
            $result = $userInfo->userInfo();

         
                //Можеш да достъпваш даден елемент от масива
                //В долния пример е града
                //echo $result[5];

                //Можеш да изведеш и целия масив
                foreach ($result as $arr) {
                    echo $arr . '<br>';
            }

            ?>
PHP Version на хоста е 5.4.45
 
pro12 каза:
Пробвах и на платен хост. И излиза грешка PHP Warning: Invalid argument supplied for foreach()
...
Такива грешки се дебъгват с var_dump на въпросната променлива и с проследяване откъде идва.
 
Пробвай така и кажи дали се получава нещо;

Код:
if (is_array($result)) {
                foreach ($result as $arr) {
                    echo $arr . '<br>';
              }
            }
 
teroristd каза:
Пробвай така и кажи дали се получава нещо;

Код:
if (is_array($result)) {
                foreach ($result as $arr) {
                    echo $arr . '<br>';
              }
            }
Това очевидно няма да влезе в ифа, щом $result е null. По-добре да поразръчка въпросния метод userInfo() с echo-та на други променливи.

EDIT

A един поглед ми подсказва, че json_decode-то е върнало NULL, a от документацията се вижда:

NULL is returned if the json cannot be decoded or if the encoded data is deeper than the recursion limit.
че трябва да дебъгваш резултата преди json_encode-to, т.е. от file_get_contents():

PHP:
    public function userInfo() {
        $this->_ip = $this->getServerTypes();
        $this->_result = json_decode(file_get_contents("http://ip-api.com/" . $this->_ip . "/json"));

        if ($this->_result != null) {

            $this->_arrResult = array($this->_result->status, $this->_result->country, $this->_result->countryCode,
                $this->_result->region, $this->_result->regionName, $this->_result->city, $this->_result->zip,
                $this->_result->lat, $this->_result->lon, $this->_result->timezone, $this->_result->isp,
                $this->_result->org, $this->_result->as, $this->_result->query);

            return $this->_arrResult;
        }
    }
 
anonimen каза:
teroristd каза:
Пробвай така и кажи дали се получава нещо;

Код:
if (is_array($result)) {
                foreach ($result as $arr) {
                    echo $arr . '<br>';
              }
            }
Това очевидно няма да влезе в ифа, щом $result е null. По-добре да поразръчка въпросния метод userInfo() с echo-та на други променливи.

Ей сега четох за подобен проблем, и го оправят така. Нищо не пречи да пробва.
 

Back
Горе