Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como criar um histórico de navegação do usuário no site

04-04-2015 20:02

Nesse post vou mostrar um script em PHP e banco de dados MySQL que permite fazer um tipo de controle para saber quais páginas determinado usuário navega no site e quantas vezes ele acessa as páginas.

O script funciona da seguinte forma:

Você precisa ter uma linha no banco de dados para cada usuário. Nessa linha você tem que ter duas colunas básicas:

id que armazena o id do usuário
urls que armazena no formato de array as páginas que o usuário acessou.

Cada página que você desejar gravar no histórico de acesso precisar ter o código a seguir:

<?php // CONEXÃO include("conecta.php"); // NOME DA TABELA QUE ARMAZENA OS DADOS $tabela = "dados"; // ID DO USUÁRIO NA TABELA $id = "25"; // COLUNA QUE ARMAZENA OS LINKS NA TABELA $coluna = "urls"; $base = mysql_query("SELECT * FROM $tabela WHERE id='$id'") or die(mysql_error()); $historicoBD = unserialize(mysql_result($base , 0, $coluna)); // FUNÇÃO PARA VERIFICAR SE VALOR JÁ EXISTE function search_array($needle, $haystack) { if(in_array($needle, $haystack)) { return true; } foreach($haystack as $element) { if(is_array($element) && search_array($needle, $element)) return true; } return false; } // ARRAY EXISTE if (@$historicoBD!="") { foreach($historicoBD AS $chave => $valor) { if(search_array("http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'], $historicoBD)) { if($valor[0]=="http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']) { $novo_valor = $valor[1]+1; $historicoBD[$chave][1] = $novo_valor; // INSERE O ARRAY NO BD $array = serialize($historicoBD); mysql_query("UPDATE $tabela SET ".$coluna."='$array' WHERE id='$id'"); } } else { $historicoBD[] = Array("http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'], 1); $array = serialize($historicoBD); mysql_query("UPDATE $tabela SET ".$coluna."='$array' WHERE id='$id'"); } } // ARRAY NÃO EXISTE } else { $historicoBD = Array( array("http://".$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME'], 1) ); // INSERE O ARRAY NO BD $array = serialize($historicoBD); mysql_query("UPDATE $tabela SET ".$coluna."='$array' WHERE id='$id'"); } foreach($historicoBD AS $Chave) { echo "link: {$Chave[0]} - views: {$Chave[1]}<br />"; } ?>

0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado