• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

gimbras

[Dúvidas] PHP (Estatísticas)

20 mensagens neste tópico

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em relação ao sistema operativo não te sei dizer, mas na resolução penso que tem de ser feito em javascript

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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"; 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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; 
?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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 :thumbsup:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
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
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o primeiro funciona mas o segundo népia.....

Não sei o que estás a fazer de mal, mas alguma coisa tem de ser, porque uma página em branco é impossivel.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!!!!
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

de qualquer modo os scripts estão porreiros :thumbsup:...eu não chegaria lá

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nós estamos a usar essa variável :P 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" :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora