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


Moderador: web

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

Gravar somente uma visita a página por usuário

19-03-2010 11:51

Esse script é uma base que trabalha da seguinte forma:

Quando o usuário entra na página, é verificado se já tem o IP dele e a URL da página em uma SESSION. Se não tem ainda, é gravado essas informações na SESSION, não permitindo uma nova inserção da mesma URL. Se já está cadastrado, mostra um texto e não adiciona a URL novamente.

Esse script é útil para gravar uma visita única por cada usuário a cada URL no seu site, ou seja, o visitante pode dar refresh várias vezes no mesmo documento que não vai não vai contar mais de uma visita.

<?php session_start(); $url = "http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; if(@in_array("$url", $_SESSION['page']) && $_SESSION['ip']==$_SERVER['REMOTE_ADDR']) { echo "<font color='red'>Essa URL já existe nessa SESSION.</font><br>"; } else { $_SESSION['page'][] = $url; $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; } echo "URLs cadastradas:<br>"; foreach($_SESSION['page'] as $valores) { echo $valores."<br>"; } // PARA DELETAR AS SESSIONS //session_destroy(); ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166

Gravar somente uma visita a página por usuário

22-03-2010 13:23

VLw Web, fiz da forma abaixo e funcionou direitinho.

<?php session_cache_expire(40); session_start(); $url = "http://".$_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; if(@in_array("$url", $_SESSION['page']) && $_SESSION['ip']==$_SERVER['REMOTE_ADDR']) { } else { $_SESSION['page'][] = $url; $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; mysql_query("UPDATE tb_topicos set cp_clicks=cp_clicks+1 where id='$id'"); } // PARA DELETAR AS SESSIONS //session_destroy(); ?>

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

Gravar somente uma visita a página por usuário

22-03-2010 16:21

:smile
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166

Gravar somente uma visita a página por usuário

24-03-2010 11:33

Web é o seguinte, percebi uma coisa.

Os títulos dinâmicos das páginas não funcionam se eu utilizar estas sessões.

Segue o arquivo do titulo que uso
<?php switch($page) // aqui você coloca a variável que você captura da URL { case 'eventos': $tit = 'Eventos'; break; case 'evento': $tit = 'Evento / '.$titulo; break; case 'noticias': $tit = 'Not&iacute;cias'; break; case 'noticia': $tit = 'Not&iacute;cia / '.$cp_titulo; break; case 'entrevistas': $tit = 'Entrevistas'; break; case 'entrevista': $tit = 'Entrevista / '.$titulo; break; case 'ranking': $tit = 'Top 10'; break; case 'top10': $tit = 'Top 10'; break; case 'expediente': $tit = 'Expediente'; break; case 'nosso_objetivo': $tit = 'Nosso Objetivo'; break; case 'elenco/elenco': $tit = 'Elenco 2009'; break; case 'agendadasemana': $tit = 'Agenda da Semana / '.$titulo; break; case 'seliganessa': $tit = 'se LIGA nessa / '.$titulo; break; case 'percorrendoacidade': $tit = 'Percorrendo a Cidade / '.$titulo; break; case 'video': $tit = 'Not&iacute;cia / '.$titulo; break; case 'busca': $tit = 'Voc&ecirc; buscou por / '.$busca; break; case 'todas_noticias': $tit = 'Not&iacute;cias'; break; default: $tit ='O Portal do Futebol Society'; } // se não for passado algum valor para a função abaixo, // ela irá mostrar o title definido no script acima muda_title($tit); ?>



Aqui está a váriavel $page, caso precise saber

<?php // which page should be shown now $page = (isset($_GET['page']) && $_GET['page'] != '') ? $_GET['page'] : 'default'; // only the pages listed here can be accessed // any other pages will result in error if (file_exists($page)) { $page = 'notfound'; } ?>

Na página eu chamo assim

<?php include 'title.php'; function muda_title($title) { if(empty($title)) { // caso nenhum valor seja passado, mostra o title abaixo echo "<title>Mundo do Society - O Portal do Futebol Society</title>"; } else { echo "<title>Mundo do Society / $title</title>"; } } ?>

Tem uma forma de concertar isso ?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gravar somente uma visita a página por usuário

24-03-2010 11:37

Não ví em nenhum dos códigos o uso da SESSION, mesmo assim, faça uma verificação quanto aos nomes das variáveis, se não ficam repetidos.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166

Gravar somente uma visita a página por usuário

24-03-2010 11:44

Por isso que achei estranho, quando eu tiro o código que cria a session, aparece o texto normal, que deve ser assim

Mundo do Society / Agenda da Semana / titulo da noticia

só que está aparecendo assim, como seu eu estivesse passando o valor default

Mundo do Society / O Portal do Futebol Society


A unica relação que vi foi "page".
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gravar somente uma visita a página por usuário

24-03-2010 11:49

Faz um teste, coloca o código da session, o que grava os dados do user, no início do documento "mantenha esse bloco isolado".

Ai você adiciona parte do seu código, onde é mostrado título de acordo, veja se é o trecho que interfere.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166

Gravar somente uma visita a página por usuário

24-03-2010 11:56

Coloquei assim no inicio da pagina.

<?php include 'valida_visitas.php'; ?>

Mas continua na mesma, lembrando que cada pagina abre dentro da index.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gravar somente uma visita a página por usuário

24-03-2010 12:00

No script da SESSION tem definido o seguinte

$_SESSION['page'][] = $url;

Tenta renomear, pode estar conflitando.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 166

Gravar somente uma visita a página por usuário

24-03-2010 13:28

Deu certo, deixei assim

$_SESSION['pagina'][] = $url;

Me diz uma coisa, se eu descomentar o session_destroy(), não vai servir de nada está rotina, neh?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17663
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Gravar somente uma visita a página por usuário

24-03-2010 13:33

O session_destroy deixei porque estava fazendo testes para deletar a session e ver se estava tudo certo para gravar novamente. Pode deletar essa linha.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

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