No post anterior, eu publiquei uma das muitas vantagens que o PHP nos oferece, que são as variáveis de servidor. Naquele post,
eu mencionei um dos usos para essas variáveis: montar um banco de dados com informações de acesso. Para isso será
necessário ter uma tabela somente para inserir esses dados. À lógica:
1º Obter IP;
2º Obter a referencia(de onde o usuário veio);
3º Obter o User-Agent;
4º Obter a data;
5º Obter a hora;
6º Conectar ao banco de dados;
7º Selecionar a tabela;
8º Verificar se o usuário já visitou o site com o mesmo IP, referência e data;
8º-a: Se sim, inserir os dados;
8º-b Terminar conexão;
9º Se não, terminar a conexão;
<?php
$ip = $_SERVER['REMOTE_ADDR']; //1º Obter IP;
$useragent = $_SERVER['HTTP_USER_AGENT']; //2º Obter a referencia(de onde o usuário veio);
$referencia = $_SERVER['HTTP_REFERER']; //3º Obter o User-Agent;
$data = date("d/m/Y"); //4º Obter a data;
$hora = date("G:i:s"); //5º Obter a hora;
$conexao = mysql_connect("servidor", "usuario", "senha"); //6º Conectar ao banco de dados;
$bd = mysql_select_db("seubanco", $conexao); //7º Selecionar a tabela;
$query = "SELECT * FROM suatabela WHERE ip = '".$ip."' AND referer = '".$referencia."' AND data = '".$data."'"; //Faz a query
com os valores recebidos do array $_SERVER;
$result = mysql_query($query, $conexao);
if(!mysql_num_rows($result)){ //8º Verificar se o usuário já visitou o site com o mesmo IP, referência e data;
$query2 = "INSERT INTO suatabela (ip,user_agent,referer,data,hora) VALUES ('".$ip."', '".$useragent."', '".$referencia."',
'".$data."', '".$hora."')";
$result2 = mysql_query($query2, $conexao); // 8º-a: Se sim, inserir os dados;
mysql_close($conexao); // 8º-b Terminar conexão;
}
else{
mysql_close($conexao); //9º Se não, terminar a conexão;
}
?>
Pronto. É isso aí.
Mas se quiser, tem como dar uma modificada. Com esse script, o usuário pode vir de outra página do seu site, com isso o banco
de dados pode se encher de registros. A referência(variável $HTTP_REFERER) é útil para saber de que site o usuário veio. Caso
você não queria que registre a url do seu próprio site, após a linha: $result = mysql_query($query, $conexao); até o fim do
script, edite para:
if(!mysql_num_rows($result)){
// esse if se traduz em: se a variável conter "parte permanente da sua url", então…;
if(eregi("parte permanente da sua url", $referencia)){ // Essa função(eregi) caça o que estiver entre aspas com o valor
da variável definida não diferenciando maiúsculas de minúsculas, no caso, $referencia;
mysql_close($conexao); // Termina a conexão;
}
else{ // Se não contiver, então registre os dados;
$query2 = "INSERT INTO dados (ip,user_agent,referer,data,hora) VALUES ('".$ip."', '".$useragent."', '".$referencia."',
'".$data."', '".$hora."')";
$result2 = mysql_query($query2, $conexao);
mysql_close($conexao);
}
}
else{
mysql_close($conexao);
}
Espero que tenham aprendido. Você, com toda a criatividade e conhecimento, pode acrescentar mais dados a esse sistema.
Queria agradecer a ajuda que recebi na comunidade PHP Brasil do Orkut, pela ajuda. Qualquer coisa, é só comentar.
segunda-feira, 28 de abril de 2008
Informações de Acesso
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário