Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: statystyki, funkcje
Forum PHP.pl > Forum > Przedszkole
Axel
witam, dość długo szukałem informacji jak pobrać od odwiedzającego strone informacje z jakiego korzysta systemu i z jakiego jest kraju, narazie udało mi sie uzyskać, host, ip przeglądarke, rozdzielczość, ale niewiem jak w przypadku 2 wyżej wymienionych rzeczy sad.gif

w manualu jest dla przykładu podany taki kod:
  1. <?php
  2. echo $_SERVER['HTTP_USER_AGENT'] . &#092;"<hr />n\";
  3.  
  4. $browser = get_browser();
  5.  
  6. foreach ($browser as $name => $value) {
  7.  echo &#092;"<b>$name</b> $value <br />n\";
  8. }
  9.  
  10. ?>


$_SERVER['HTTP_USER_AGENT'] tego używam do wykrycia przeglądarki, ale jak z tego pobrać i czy sie da system operacyjny ? chodzi mi oto żeby był w osobnej zmiennej zapisany żebym później dodał tą informacje do bazy, po zastosowaniu tego kodu na stronie otrzymuje:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; FunWebProducts; .NET CLR 1.1.4322)
--------------------------------------------------------------------------------

Warning: get_browser(): browscap ini directive not set. in c:\usr\krasnal\www\test2\sys.php on line 4

Warning: Invalid argument supplied for foreach() in c:\usr\krasnal\www\test2\sys.php on line 6

niby cos na górze pokazuje, ale jak wyciągnąć tylko system ?, bo to mnie interesuje ... no i z jakiego kraju pochodzi odwiedzający ... prosze o pomoc
strife
Swojego czasu też musiałem coś takiego napisać, masz skrypt na przeglądarkę, co do kraju nie wiem. Ale chyba musisz skorzystać z bazy danych adresów IP. Nie mam pojęcia może ci ktoś inny doradzi co do kraju, ale do rzeczy:

  1. <?php
  2.  
  3. global $ex;
  4.  
  5.  function s_explorer($agent) {
  6.      global $ex;
  7.  
  8.  
  9.  if (ereg(&#092;"Mozilla/3.01\", $agent))
  10.  {
  11.      $ex = &#092;"Internet Explorer 3\";
  12.  }
  13.  if (ereg(&#092;"MSIE\", $agent))
  14.  {
  15.    $ex = &#092;"Internet Explorer \".substr($agent, strpos($agent, \"MSIE\")+5, 1);
  16.  
  17.  }
  18.  if (ereg(&#092;"Mozilla/4.7\", $agent))
  19.  {
  20.      $ex = &#092;"Netscape 4\";
  21.  
  22.  }
  23.  
  24.  if (ereg(&#092;"Gecko\", $agent))
  25.  {
  26.      $ex = &#092;"Netscape 6\";
  27.  }
  28.  if (ereg(&#092;"Firefox\", $agent))
  29.  {
  30.      $ex = &#092;"Firefox\";
  31.  
  32.  }
  33.  if (ereg(&#092;"Lynx\", $agent))
  34.  {
  35.      $ex = &#092;"Lynx\";
  36.  
  37.  }
  38.  if (ereg(&#092;"Opera\", $agent))
  39.  {
  40.      $ex = &#092;"Opera\";
  41.  
  42.  }
  43.  
  44.  
  45. }
  46.  
  47.   $agent = $_SERVER['HTTP_USER_AGENT'];
  48.   s_explorer($agent);
  49.  
  50. echo 'Twoja przegladarka to:'.$ex;
  51.  
  52. ?>


Pozdrawiam!
rogrog
wiele razy bylo na forum jak okreslic kraj na podstawie IP (baza adresów)
co do przeglądarki: JS określa przeglądarkę i przesyła jakoś do skryptu. Pewnie w ten sam sposób pobierasz rozdzielczość
Axel
ja na przeglądarke połączyłem 2 przykłady z manuala i mam coś takiego:

  1. <?php
  2.  
  3. $browser = array (
  4.    &#092;"MSIE\",            // parent
  5.    &#092;"OPERA\",
  6.    &#092;"MOZILLA\",        // parent
  7.    &#092;"NETSCAPE\",
  8.    &#092;"FIREFOX\",
  9.    &#092;"SAFARI\"
  10. );
  11.  
  12. $info[browser] = &#092;"OTHER\";
  13.  
  14. foreach ($browser as $parent) {
  15.    $s = strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent);
  16.    $f = $s + strlen($parent);
  17.    $version = substr($_SERVER['HTTP_USER_AGENT'], $f, 5);
  18.    $version = preg_replace('/[^0-9,.]/','',$version);
  19.    
  20.    if (strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), $parent)) {
  21.    $info[browser] = $parent;
  22.    $info[version] = $version;
  23.  
  24.  
  25.  
  26. if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') )
  27. {
  28.    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') )   
  29.    {
  30.      $browser = 'Netscape ';
  31.      
  32.    }
  33.    else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') )
  34.    {
  35.      $browser = 'Mozilla Firefox ';
  36.    }
  37.    else
  38.    {
  39.      $browser = 'Mozilla ';
  40.    }
  41. }
  42. else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') )
  43. {
  44.    if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') )
  45.    {
  46.      $browser = 'Opera ';
  47.      
  48.     }
  49.    else
  50.    {
  51.      $browser = 'Internet Explorer ';
  52.    }
  53. }
  54. else
  55. {
  56.    $browser = 'Others browsers';
  57. }
  58.  
  59. echo $browser; echo $version;
  60.  
  61.    }
  62. }
  63.  
  64. ?>

niewiem czy jest to poprawny kod ale pokazuje dobrze smile.gif dzieki za odpowiedź, a z tym krajem może ktoś bedzie wiedzial ohmy.gif

EDIT:
rozdzielczość pobieram tak:
  1. <?
  2. $resolution = '<script>';
  3. $resolution.= 'document.write(screen.width + \" x \" + screen.height);';
  4. $resolution.= '</script>';
  5. echo 'Resolution: '.$resolution; 
  6. ?>

a możesz podać linki gdzie to było na forum bo nie znalazłem sad.gif
dr_bonzo
print_r( $_SERVER )
lub tez
php_info() i tam szukaj przegladarki
Kocurro
Ścągnij sobie Imperator Stats i Bitlog Stats - potem przejrzyj ich kod i wykrozystaj co potrzeba smile.gif

Co do tablic geolokalizacyjnych to firma MaxMind oferuje darmową tablicę z trafnością około 95%.

Poza tym jak chcesz wykryć przelądarkę to najpeirw sprawdź czy zawiera ciag Opera - jeśli tak to jest to przegladarka Opera, która podszywa się pod inną.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.