MemHT Portal is a Free PHP CMS and Blog
It permit the creation and the management online of websites with few and easy steps.
It's completely customizable, expandable and suitable for all needs.
Moderators: Moderators
Page 1/4 1 2 3 4 > >|
Forum RSS feedReply
IP Counter
AuthorText
slashado
Donator

Posts: 302
Contributes: 329

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Brasil
Languages: Português, Inglês (via Google), e todas as outras (via google)
Date: 25/08/2009 20:06
IP Counter
#post21798

Well, once again I come to ask help ... I hope this time we get some response, albeit a NO!
I have a problem of users on my site that are taking advantage of using F5 refresh to increase the statistics and position of the site.
The site is separating the pages by Hits, people discovered that and are pressing F5 to go up in the standings.
How could I, without creating modules, to change the HITS count for IPs instead of prints? pelomenos pages in tabs, which is where it matters most is where the bands are competing for the site?
C'mon guys, this time I'm really completely lost, I am very much with your help ... Mem, Paulo, please!
SmileSmileSmile
Sincerely


Here in Brazil, the vast majority of IP's are dynamic, so there would be a big problem doing it that count for ip's. Problem being that dishonest people who can not compete fairly! I need to create a means to count hits HONESTLY and give the best positions ... but do not know how!
Edited: 25/08/2009 20:18
..::MS Criações::.. - Criação e Hospedagem de Websites!
..::Memht BRASIL::.. - Comunidade brasileira do MemHT!
Eager for MemHT 5
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 20:24
Re: IP Counter
#post21799
Viva slashado

Podes explicar isso melhor em portugues, não percebi muito bem o problema.

Abraços
Delete Edit Quote
 
slashado
Donator

Posts: 302
Contributes: 329

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Brasil
Languages: Português, Inglês (via Google), e todas as outras (via google)
Date: 25/08/2009 20:30
Re: IP Counter
#post21800
Viva Paulo... grande amigo...
O que está ocorrendo é o seguinte:

No site em que criei, é um site musical, onde bandas musicais são cadastradas e etc...
o site é http://www.projetomirc.com.br

Na primeira primeira página, há um TOP que mostra as bandas mais visitadas.
O problema que estou enfrentando é que, por ser ordenadas por HITS, alguns usuários sem honestidade estão dando F5 para aumentar o contador de HITs, fazendo com que subam nas estatísticas e acabem na primeira página!

O que estou querendo fazer, é fazer com que esse contador conte por IP, para que não seja possível o uso do F5 (Refresh) para subir nas estatísticas.

Especificamente, a página em que estou usando é GUIAS para separar essas Bandas.
Eu sei criar um sistema de contador de IPs, mas não sei como implementar ao MemHT nessa página.
Se possível, gostaria de usar o próprio MEMHT e o contador de IPs para essas GUIAS, para manter as primeiras posições do SITE fiéis!

Como eu poderia fazer com que esse contador só contasse 1 única vez, independente da quantidade de REFRESH?
..::MS Criações::.. - Criação e Hospedagem de Websites!
..::Memht BRASIL::.. - Comunidade brasileira do MemHT!
Eager for MemHT 5
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 20:59
Re: IP Counter
#post21801
Ok já percebi o problema.

A melhor solução será criar uma tabela de apoio à página guides.

Ex.:
- Tabela com 2 campos (ip,data).
- Na pagina guides fazes uma verificação se já existe o ip nessa tabela de apoio, se não existir então inseres 1 hit.
- Podes colocar na página guides uma query para apagar automáticamente os ips com mais de 60 minutos por exemplo,assim evitas carregar muito a base de dados e evitas que quem tenha o ip fixo nao possa mais contar.

Espero que tenha dado para perceberes a ideia.
Alguma coisa grita que eu te ajudo.

Abraços
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 21:14
Re: IP Counter
#post21802
Desculpa, a tabela tem que ter 3 campos, pois tens que pegar o id da guide para fazer a comparação.

Se tu quizeres eu posso te fazer isso, hoje estou com um tempinho livre.

Abraços
Delete Edit Quote
 
slashado
Donator

Posts: 302
Contributes: 329

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Brasil
Languages: Português, Inglês (via Google), e todas as outras (via google)
Date: 25/08/2009 21:18
Re: IP Counter
#post21803
Certo caro amigo Paulo, eu criei algo assim:

Tabelas:
code

CREATE TABLE IF NOT EXISTS `visitas` (
  `id` int(50) unsigned NOT NULL auto_increment,
  `ip` varchar(11) NOT NULL,
  `data` varchar(10) NOT NULL default '00/00/0000',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 


o PHP
code

<?php
class visita
{
    /*
     * variaveis
     **/

     
    //Dados necessarios para verificacao  de visitantes
    var $ip; //armazena o ip do usuario
    var $data; //armazena a data atual
    //Dados necessarios para conexao com db   
    var $hostdb = "localhost";
    var $userdb = "marcio";
    var $passdb = "******";
    var $namedb = "******";
    //Nome da tabela
    var $tabVisitas = "visitas";
    /*
     * construtor
     **/

    function visita($ip)
    {
        //armazena na variavel 'ip' o ip do visitante atual
        $this->ip=$ip;
        //Pega a data atual
        $this->data=date("d/m/Y");
    }
    /*
     * conexao com banco
     **/

    function conectar()
    {
        $link= mysql_connect($this->hostdb,$this->userdb,$this->passdb)or die(mysql_error());
        mysql_select_db($this->namedb,$link)or die(mysql_error());
    }   
    /*
     * verifica se o  usuario ja visitou
     **/

    function verificaVisitante()
    {   
        //Chama a funcao de conexao com db
        $this->conectar();
        /* Seleciona por ip e data  */
        $sql = mysql_query("SELECT ip,data
                            FROM "
.$this->tabVisitas."
                            WHERE ip='"
.$this->ip."' AND data='".$this->data."'")or die(mysql_error());
        /* Verifica se a selecao feita existe, caso nao exista insere novo */
        if(!mysql_num_rows($sql)>0)
            $insereVisita = mysql_query(" INSERT INTO ".$this->tabVisitas."
                                        (id,ip,data)
                                        VALUES
                                        ('','"
.$this->ip."','".$this->data."')");
        //else print("Ja visitou");
    }
    /*
     * imprime numero de visitas
     **/

    function imprime()
    {
        //Chama conexao;
        $this->conectar();
        //Seleciona todos
        $sql = mysql_query("SELECT * FROM ".$this->tabVisitas);
        //Conta quantos foram selecionados
        $total= mysql_num_rows($sql);
        //Imprime numero de visitas (registros na tabela)
        print("Visitas: ".$total);
    }
}
//'Chama' a classe visita e ja pega o ip do visitante
$visita = new visita($_SERVER['REMOTE_ADDR']);
//Chama a funcao verificaVisitante();
//Ela verifica se por ip e data se o usuario ja visitou
$visita->verificaVisitante();
//Imprime o total de visitas (total de registros na tabela)
$visita->imprime();
?>
 


Até aqui, eu consigo fazer com que conte apenas 1 vez o IP, onde ele conta por IP e data, ou seja, o mesmo IP só é contado uma única vez por dia!

Aí foi que eu me perdi... Como implementar na Página Guias?
Edited: 25/08/2009 21:19
Reason: Dados da base dados (Edited by paulo89)
..::MS Criações::.. - Criação e Hospedagem de Websites!
..::Memht BRASIL::.. - Comunidade brasileira do MemHT!
Eager for MemHT 5
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 21:21
Re: IP Counter
#post21804
Não precisas de criar uma class, com poucas linhas podes fazer isso directamente na página guides.

Eu já te faço isso e coloco aqui, espere um pouco.
Delete Edit Quote
 
slashado
Donator

Posts: 302
Contributes: 329

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Brasil
Languages: Português, Inglês (via Google), e todas as outras (via google)
Date: 25/08/2009 22:05
Re: IP Counter
#post21805
MEU HERÓI Smile
..::MS Criações::.. - Criação e Hospedagem de Websites!
..::Memht BRASIL::.. - Comunidade brasileira do MemHT!
Eager for MemHT 5
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 22:06
Re: IP Counter
#post21806
ok amigo vamos lá:

Cria esta tabela:

code

CREATE TABLE IF NOT EXISTS `memht_guide_apoio` (
  `id` int(10) NOT NULL,
  `ip` varchar(15) NOT NULL,
  `data` datetime NOT NULL
);
 


Abre o ficheiro pages/guides/index.php

Procura a linha 121:
code

global $dblink,$siteConfig,$admin,$user;
 


Altera para:
code

global $dblink,$siteConfig,$admin,$user,$visitorInfo,$tzNOW;
 


Procura a linha 126
code

if ($row = $dblink->get_row("SELECT g.*,(SELECT......


Logo abaixo dessa linha coloca este código: (ele está comentado para tu perceberes)

code

        // Aqui vamos criar uma rotina para apagar os ips da tabela com mais de 60 minutos
        $dblink->query("DELETE FROM memht_guide_apoio WHERE (data + INTERVAL 60 MINUTE) < $tzNOW");

        // Aqui vamos verificar se já existe o ip na tabela
        if($dblink->get_num("SELECT ip FROM memht_guide_apoio WHERE ip='".$visitorInfo['ip']."' AND id='$idg'")==0) {
            // Como verificamos o ip não existe então vamos adicionar, assim como o id da guide e data e hora.
            $dblink->query("INSERT INTO memht_guide_apoio VALUES ($idg,'".$visitorInfo['ip']."',$tzNOW)");
            // Aqui como o homem não está tentando enganar, vamos lá contar o hit lol
            $dblink->query("UPDATE memht_guide SET hits=hits+1 WHERE id=$id OR nome='$title'");
        }
 


E pronto, já ninguem engana mais ninguém lol.

Abraços
Delete Edit Quote
 
sisnox
Moderator
Developer


Posts: 1638
Contributes: 897

Gender: _MALE_
Online: No

Version: 4.0.1
Country: Portugal
Languages: Portuguese, Portuguese and little english ^^
Date: 25/08/2009 22:08
Re: IP Counter
#post21807
Eu vou te deixar aqui em anexo o ficheiro alterado, caso tenhas alguma duvida.

Abraços
Attachment: index_6mntq.php
Delete Edit Quote
 
Reply
Page 1/4 1 2 3 4 > >|
Tags Cloud
Advertising
Help MemHT Portal
Navigator
Users Block
Hi Guest
IP: 38.107.191.107

Username
Password
Language
MemHT Portal is a free software released under the GNU/GPL License by Miltenovik Manojlo