Enviado em 30/09/2014 - 09:27h
Olá pessoal, primeiramente quero agradecer pela ajuda que vocês têm me dado.
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
require("config.php");
function user_online(){
global $conn;
//pega ip o usuario
$ip = $_SERVER['REMOTE_ADDR'];
//PEGA O HORARIO ATUAL
$horario = date("Y-m-d H:i:s");
//insere ou atualiza o usuario atual que acessou a pagina
$tb = $conn->prepare("SELECT ip FROM usuarios WHERE ip = :ip");
$tb->bindParam(":ip", $ip, PDO::PARAM_STR);
$tb->execute();
$l = $tb->fetch(PDO::FETCH_ASSOC);
$tb = null;
//se o ip não existir no banco, adiciona-o
if(empty($l)){
$tb = $conn->prepare("INSERT INTO usuarios VALUES(:ip, :horario)");
$tb->bindParam(":ip",$ip, PDO::PARAM_STR);
$tb->bindParam(":horario", $horario, PDO::PARAM_STR);
$tb->execute();
$tb = null;
//se o ip já existir, atualiza a data de acesso e horario
}else{
$tb = $conn->prepare("UPDATE usuarios SET ultimo_acesso=:horario WHERE ip=:ip");
$tb->bindParam(":ip",$ip, PDO::PARAM_STR);
$tb->bindParam(":horario", $horario, PDO::PARAM_STR);
$tb->execute();
$tb = null;
}
// monta data ha 40 seguntos atras
$data = make_data_time(date('Y-m-d H:i:s'),0,0,0,0,-2,0);
//---
//exclui data há 40 segundos atras
$tb = $conn->prepare("DELETE FROM usuarios WHERE ultimo_acesso <:data");
$tb->bindParam(":data",$data, PDO::PARAM_STR);
$tb->execute();
$tb = null;
//---
//conta quantos usuarios existem e retorna o total
$tb = $conn->prepare("SELECT count(*) AS TOTAL FROM usuarios");
$tb->execute();
$l = $tb->fetch(PDO::FETCH_ASSOC);
$tb = null;
//-
return $l["TOTAL"];
}
function make_data_time($data, $anoConta, $mesConta, $diaConta, $horaConta, $minutoConta, $segundoConta){
$ano = substr($data, 0,4);
$mes = substr($data, 5,2);
$dia = substr($data, 8,2);
$hora = substr($data, 11,2);
$minuto = substr($data, 14,2);
$segundo = substr($data, 17,2);
return date('Y-m-d H:i:s', mktime($hora+($horaConta),$minuto+($minutoConta), $segundo + ($segundoConta), $mes+($mesConta), $dia+($diaConta), $ano+($anoConta)));
}