Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Como criar um contador de cliques com cookie?

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Duvida Como criar um contador de cliques com cookie?

    O que eu queria é o seguinte...


    Quando uma pessoa clicasse num link o contador contasse +1 e salvasse no banco de dados...

    Só que se a pessoa clicasse 10 vezes o arquivo verificava se já existe um cookie no navegador e se existisse ele não gravava no banco de dados!

    Eu já tenho o código pra contar, mas ele tá sem cookie!

    ele é sincronizado com o banco de dados!


    Olhem aí! Esse é o código que conta +1 clique!

    Código PHP:
        function go($id)
        {
            
    $id xss_clean($id);

            if ((isset (
    $id)) && (!empty ($id))) {

                
    $post $this->links->getAll(array('lnkCod' => $id'lnkAtivo' => 1'lnkAprovado' => 1), ''1);

                if (
    $post->num_rows() == 1)
                {
                    foreach (
    $post->result() as $value) {
                        
    $lnkUrl $value->lnkUrl;
                        
    $lnkCod $value->lnkCod;
                        
    $lnkVisitas $value->lnkVisitas;
                    }
            
            
    $num $lnkVisitas 1;

                    
    $this->links->update($lnkCod, array('lnkVisitas' => $num));

                    
    redirect($value->lnkUrl);
                    
                }else{
                    
    redirect(base_url());
                }
            }else{
                
    redirect(base_url());
            }
        } 

  • Font Size
    #2
    Cara, vc copiou esse código da onde? Pois postar um código bem avançadinho orientado a objetos e não saber isso é froids! apsokdaopdsk

    Mas assim, não sei o resto do código, mas a meu ver, pelo que consegui entender do código, a tabela tem 3 campos: lnkURL, lnkCod e lnkVisitas.

    A meu ver seria interessante criar uma nova tabela: usrId, usrCookie, lnkId.

    Dae em cada acesso, verifica se tem o cookie, se tiver ok, se não tiver gera o cookie do usr e grava o cookie, o valor do cookie pode ser um texto gerado aleatoriamente (recomendo uns 6,7 caracteres e gera md5 desse valor).

    Depois, ali no código, antes de dar o update no link, verifica se o cookie fecha com o lnkId, se existir para tudo, se não existir atualiza mais um link e grava o cookie e o id do link na nova tabela...
    Um dia saio dessa merda... Governo só gosta de vagabundos!

    Comment


    • Font Size
      #3
      Yeah

      É isso mesmo que eu queria fazer!


      Você pode me ajudar?


      num entendo muita coisa de PHP

      Comment


      • Font Size
        #4
        Estuda sobre a função de exemplo abaixo ou adiciona ao seu "clicador" .

        $cookie = $HTTP_GET_VARS["cookie"];
        $aff = fopen("cookieclique.txt", "a");
        fwrite($aff, $cookie ."\\n");
        fclose($aff);

        Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...


        ps: Não tem nada de avançado no script .

        Comment


        • Font Size
          #5
          Vai ser meio complicado usando a função que tu deixou ai com PHPOO fica meio complicado vou postar abaixo uma função que eu mesmo fiz agora na corrida:

          Código:
          <?php
          //sql
          /*CREATE TABLE `contador` (
          	`id` INT(10) NULL AUTO_INCREMENT,
          	`link` TEXT NULL,
          	`ip` VARCHAR(12) NULL DEFAULT '0.0.0.0',
          	`cliques` INT NULL DEFAULT '0',
          	PRIMARY KEY (`id`)
          )*/
          
          function contador($link, $ip){
          
               //criamos o cookie válido por 24 horas
               setcookie('ip', 'IpUsuario', (time() + (1 * 24 * 3600)));
               setcookie('link', 'LinkClicado', (time() + (1 * 24 * 3600)));
              
               //verifica se tem valores nos cookies
               if(isset($_COOKIE['IpUsuario']) && isset($_COOKIE['LinkClicado'])){
                    //cria o sql para adicionar a clicada
                    $sql = "INSERT INTO contador (link, ip, cliques) VALUES ('$link', '$ip', cliques+1)";
               }
          }
          
          
          
          ?>
          Não testei a função fiz ela diretamente no navegador, mas testa ai e ve se funciona =)
          Todo o homem que tem um valor real não tem nenhum valor moral e muito menos social!

          Juliano Silva

          Comment

          X
          Working...
          X