Jump to content

Recommended Posts

Posted

Boas,

Estou a criar um script de estatísticas para o meu site e preciso de um ajudinha.

Consigo saber a hora, dia, mês, ano e ip do visitante.

$dia = gmdate("d");
$mes = gmdate("m");
$ano = gmdate("Y");
$hora = gmdate("H:i");
$ip = $_SERVER['REMOTE_ADDR'];

Mas quero encontrar mais informação sobre quem nos visita.

Vou adicionar as seguintes variáveis que o PHP irá devolver:

$browser = $_SERVER['HTTP_USER_AGENT'];
$referer $_SERVER['HTTP_REFERER'];

A primeira é para saber o browser do cliente (computador do visitante), a segunda de onde veio ele.

Só não sei como se faz para saber que Sistema Operativo tem e que resolução definiu. Podem-me dar umas dicas.

Agradeço a vossa ajuda.

Cumps.

PS: Se quiserem sugerir mais alguma variável interessante para um script de estatísticas, força nisso!

Redcodestudio - Programação Web - http://www.redcodestudio.com/

Posted

É isto que queres 🙂 (acho eu)

if(ereg("Win", $_SERVER["HTTP_USER_AGENT"])) $os = "Windows";
elseif((ereg("Mac", $_SERVER["HTTP_USER_AGENT"])) || (ereg("PPC", $_SERVER["HTTP_USER_AGENT"]))) $os = "Mac";
elseif(ereg("Linux", $_SERVER["HTTP_USER_AGENT"])) $os = "Linux";
elseif(ereg("FreeBSD", $_SERVER["HTTP_USER_AGENT"])) $os = "FreeBSD";
elseif(ereg("SunOS", $_SERVER["HTTP_USER_AGENT"])) $os = "SunOS";
elseif(ereg("IRIX", $_SERVER["HTTP_USER_AGENT"])) $os = "IRIX";
elseif(ereg("BeOS", $_SERVER["HTTP_USER_AGENT"])) $os = "BeOS";
elseif(ereg("OS/2", $_SERVER["HTTP_USER_AGENT"])) $os = "OS/2";
elseif(ereg("AIX", $_SERVER["HTTP_USER_AGENT"])) $os = "AIX";
else $os = "Outro"; 

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted

Já agora deixo aqui a minha contribuição:

<?php 
///////////////////////////////////////////////////////////////////////////// 
//                        Detectar Sistema Operativo                       // 
//                       Elaborado por =IceBurn= 2006                      // 
//               * * * * * * *  WWW.TENHAMEDO.NET * * * * * * *            // 
/////////////////////////////////////////////////////////////////////////////                                                                  

$user_agent = $_SERVER['HTTP_USER_AGENT']; 
         
     if (preg_match("/Windows 95/i", $user_agent))     $so = "Windows 95"; 
else if (preg_match("/Win95/i", $user_agent))          $so = "Windows 95"; 
else if (preg_match("/Win98/i", $user_agent))          $so = "Windows 98"; 
else if (preg_match("/Windows ME/i", $user_agent))       $so = "Windows ME"; 
else if (preg_match("/Windows 98/i", $user_agent))       $so = "Windows 98"; 
else if (preg_match("/Win 9x 4.90/i", $user_agent))   $so = "Windows ME"; 
else if (preg_match("/Windows 2000/i", $user_agent))   $so = "Windows 2000"; 
else if (preg_match("/Windows NT 5.0/i", $user_agent)) $so = "Windows 2000"; 
else if (preg_match("/Windows XP/i", $user_agent))       $so = "Windows XP"; 
else if (preg_match("/Windows NT 5.1/i", $user_agent)) $so = "Windows XP"; 
else if (preg_match("/Windows NT 5.2/i", $user_agent)) $so = "Windows XP x64 Edition"; 
else if (preg_match("/Windows NT 6.0/i", $user_agent)) $so = "Windows Vista"; 
else if (preg_match("/Windows NT/i", $user_agent))    $so = "Windows NT"; 
else if (preg_match("/WinNT/i", $user_agent))            $so = "Windows NT"; 
else if (preg_match("/Windows CE/i", $user_agent))     $so = "Windows Mobile"; 
else if (preg_match("/Linux/i", $user_agent))          $so = "Linux"; 
else if (preg_match("/BSD/i", $user_agent))           $so = "BSD"; 
else if (preg_match("/SunOS/i", $user_agent))          $so = "Solaris"; 
else if (preg_match("/Mac OS X/i", $user_agent))       $so = "Mac OS X"; 
else if (preg_match("/Mac_PowerPC/i", $user_agent))    $so = "Mac OS"; 
else if (preg_match("/Macintosh/i", $user_agent))      $so = "Mac OS"; 
else if (preg_match("/Mac/i", $user_agent))           $so = "Mac OS"; 
else                                               $so = "Desconhecido"; 

echo $so; 
?>
Posted

já agora para a resolução:

javascript

screen.width

screen.height

em relação ao script que detecta o sistema operativo não está a funcionar no meu servidor, aparece uma página em branco....

MCITP-MCTS-MCP

Posted

Se fores ver à area do JavaScript > Armazém de Código tem lá um script que eu fiz  👍

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted
em relação ao script que detecta o sistema operativo não está a funcionar no meu servidor, aparece uma página em branco....

Suponho que não estejas a referir-te ao meu post....

Ele deve tar a falar do do Skin, ele n tem nnh echo/print/whatever 👍

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

O que eu fiz é para guardar numa base de dados e por isso tenho o resto do código que me faz tudo.

Mas é simples, se sabes PHP sabes que é só pores echo $os;

Our lives begin to end the day we become silent about things that matter - Martin Luther King

Posted
em relação ao script que detecta o sistema operativo não está a funcionar no meu servidor, aparece uma página em branco....

Suponho que não estejas a referir-te ao meu post....

pois

em relação ao script que detecta o sistema operativo não está a funcionar no meu servidor, aparece uma página em branco....

Suponho que não estejas a referir-te ao meu post....

é mesmo o teu que não funciona

MCITP-MCTS-MCP

Posted

vamos ao exemplo que não funciona aqui....

1ºcriou a variável que detecta o browser

2ºcriou uma estrutura if com a função preg_match para procurar uma palavra especifica...

ex:se tiver a palavra Windows XP/i a variável $os toma o valor window XP.....

3º imprime o valor da variável $os

está bem pensado mas como já disse anteriormente não está a funcionar aqui....mas de qq modo não perecebo qual o intuito da pergunta....

MCITP-MCTS-MCP

Posted

fil79, era só para saber se eras daqueles que é só copy paste. Anyway, o skin n tem ali nnh echo, é impossível teres algum  output. Se lá meteres echo $os; no final, vais ter SEMPRE um output.

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Posted

fil79, era só para saber se eras daqueles que é só copy paste. Anyway, o skin n tem ali nnh echo, é impossível teres algum  output. Se lá meteres echo $os; no final, vais ter SEMPRE um output.

pois esse consegui logo á primeira....entretanto já consegui rodar o outro, mas sinceramente continuei sem saber qual o erro que dava...estava a guardar a página no notepad e aparecia sempre uma página em branco...entretanto tentei no notepad++ para melhor visualizar a estrutura do script e aí deu(?!??!?!?!?!??!?!)........há coisas!!!!

MCITP-MCTS-MCP

Posted

Ena, obg pelas respostas. Mas será assim tão necessário um script tão longo para detectar o OS?

Bastou-me $_SERVER['HTTP_USER_AGENT'] para saber o sistema Operativo do cliente.

'HTTP_USER_AGENT'

    Contents of the User-Agent: header from the current request, if there is one. This is a string denoting the user agent being which is accessing the page. A typical example is: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Among other things, you can use this value with get_browser() to tailor your page's output to the capabilities of the user agent.

Fui a esta página para saber mais variáveis deste tipo, aqui.

Redcodestudio - Programação Web - http://www.redcodestudio.com/

Posted

Nós estamos a usar essa variável 😛 O código é assim tão qd pk n nos interessa se o user-agent é "Firefox 2.0 Gecko/500246040 build 56045640 blah blah (Windows NT)". O que nos interessa é só um nome, fica mais "bonito" 🙂

Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.