Eu fiz uma classe com uma ajuda do flávio_vivinho que funciona bem, e grava tudo no banco de dados.
segue:
conect.php:
<?php
class Conexao extends PDO {
private static $instancia;
public function Conexao($dsn, $username = "", $password = "" {
// O construtro abaixo é o do PDO
parent::__construct($dsn, $username, $password);
}
public static function getInstance() {
// Se o a instancia não existe eu faço uma
if(!isset( self::$instancia )){
try {
self::$instancia = new PDO("mysql:host=localhost;dbname=agenda",
"root",
"senha",
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
);
} catch ( Exception $e ) {
echo 'Erro_ ao conectar';
exit ();
}
}
// Se já existe instancia na memória eu retorno ela
return self::$instancia;
}
}
?>
acessos.php
<?php
// classe de conexão com o banco
require_once('conect.php';
// classe de registro de acesso
class Acesso{
public function RegistraAcesso($id, $nome, $data, $ip){
if(empty($_SESSION['marca_acesso']) AND !empty($_SESSION['usuarioID'])){
$con_acesso = Conexao::getInstance();
$sql_acesso = $con_acesso->prepare("INSERT INTO acessos (id_acesso, nome_acesso, data_acesso, ip_acesso)
VALUES ('$id', '$nome', '$data', '$ip' "
$sql_acesso->execute();
$_SESSION['marca_acesso'] = true;
}
else{
}
}
}
?>
e no index ou página que deseja o acesso registrado:
<?php
include_once ('classes/acessos.php';
$acesso = new Acesso();
$id = $_SESSION['usuarioID'];
$nome = $_SESSION['usuarioNome'] ;
$data = date("d/m/Y à\s H:i"
$ip = $_SERVER["REMOTE_ADDR"];
$acesso->RegistraAcesso($id, $nome, $data, $ip);
?>
O conect.php é uma classe de conexão em PDO, caso não use no arquivo acessos.php ao invés de chamar a classe de conexão altere de acordo.
E no caso do usuário e Id são passados pela sessão que utilizo no meu sistema de login.