lucaswxp 22 Denunciar post Postado Abril 16, 2009 Olha eu aqui denovo :P Bom, hoje vou ensinar (pelo menos tentar) a fazer um simples contador de visitas unicas utilizando um arquivo de texto (ou php)... "Ou php" porque com o arquivo de texto as pessoas poderão acessar o arquivo que ficam armazenado os IPs e visualizar tudo, isso com certeza é desagradavel, por isso o também tem o script para download que armazena os IPs num arquivo php que impede a visualização dos IPs =D O codigo é auto explicativo, você pode ir lendo os comentarios para entender ^^ // CONTADOR UTILIZANDO ARQUIVO TXT visitas.class.php <?php class visitas { public $num_visitas; public function __construct (){ // Pegamos o IP do visitante $ip = getenv('REMOTE_ADDR'); // Esta variavel será usada para que caso o IP ja exista ela receba outro valor, assim nao cadastrará o IP novamente $existe = 0; // O nome do arquivo que ficará guardado os IPs $arquivoVi = "visitas.txt"; // Abrimos o arquivo posicionando o ponteiro ao final do arquivo $arquivo = fopen($arquivoVi,"a"); // Inserimos cada linha do arquivo num array $file = file($arquivoVi); // Contamos quantos existem $total = count($file); // _______________________________________ // Realizamos o loop para comparar com cada linha do arquivo se o IP ja existe for ($i=0;$i<$total;$i++){ // Se existir a variavel $existe terá o valor 1 if ($file[$i] == "$ip ") $existe = 1; } // _______________________________________ // Caso $existe seja igual a 0 gravará o IP do visitante if ($existe == 0) fwrite ($arquivo,$ip . ' '); fclose($arquivo); // Contamos quantos indices existem $this->num_visitas = count(file($arquivoVi)); } } ?> total_visitas.php <?php include "visitas.class.php"; $visitas = new visitas(); echo $visitas->num_visitas; ?> Agora basta inserir o seguinte codigo na pagina que quiser para aparecer o numero de visitas em seu site: <?php include "contador/total_visitas.php"; ?> Ai esta o codigo utilizando texto, agora o codigo utilizando php, não há muitas diferenças entre eles.... // CONTADOR UTILIZANDO ARQUIVO PHP visitas.class.php <?php class visitas { public $num_visitas; public function __construct (){ // Pegamos o IP do visitante $ip = getenv('REMOTE_ADDR'); // Esta variavel será usada para que caso o IP ja exista ela receba outro valor, assim nao cadastrará o IP novamente $existe = 0; // O nome do arquivo que ficará guardado os IPs $arquivoVi = "visitas.php"; // Abrimos o arquivo posicionando o ponteiro ao final do arquivo $arquivo = fopen($arquivoVi,"a"); // Inserimos cada linha do arquivo num array $file = file($arquivoVi); // Contamos quantos existem $total = count($file); // _______________________________________ // Realizamos o loop para comparar com cada linha do arquivo se o IP ja existe for ($i=0;$i<$total;$i++){ // Se existir a variavel $existe terá o valor 1 if ($file[$i] == "$ip ") $existe = 1; } // _______________________________________ // Caso $existe seja igual a 0 gravará o IP do visitante if ($existe == 0) fwrite ($arquivo,$ip . ' '); fclose($arquivo); // Contamos quantos indices existem (o -1 foi colocado ai por causa do codigo php que ocupa uma linha) $this->num_visitas = count(file($arquivoVi)) - 1; } } ?> arquivo visitas.php que ficará armazenado os ips <?php if (!define("contador_visitas")) exit (); ?> total_visitas.php <?php include "visitas.class.php"; $visitas = new visitas(); echo $visitas->num_visitas; ?> Agora basta inserir o seguinte codigo na pagina que quiser para aparecer o numero de visitas em seu site: <?php include "contador/total_visitas.php"; ?> Bom é isso ai =) Abaixo os scripts para download Contador txt: http://rapidshare.com/files/222194832/contador.rar.html Contador php: http://rapidshare.com/files/222195045/contador.rar.html (recomendado) Compartilhar este post Link para o post Compartilhar em outros sites
Neto Aterje 0 Denunciar post Postado Junho 16, 2009 Fiz todo o procedimento, salve na pasta contador. como está o Iframe, mas o contador não roda. O que poderia ser? Compartilhar este post Link para o post Compartilhar em outros sites
Vitor Oliveira 26 1 Denunciar post Postado Junho 30, 2009 http://www.2w.com.br/contador-de-visitas-acessos-gratis.html Compartilhar este post Link para o post Compartilhar em outros sites
Ertulio Scaranto 0 Denunciar post Postado Maio 24, 2014 Olá, infelizmente o arquivo está gravando o IP do meu servidor aonde está instalado o meu site e não o IP do Visitante... Como Arrumar? Att Tulio. Fiz todo o procedimento, salve na pasta contador. como está o Iframe, mas o contador não roda. O que poderia ser? Os arquivos visitas.class.phpvisitas.php devem ficar no diretório aonde seu site está instalado... Compartilhar este post Link para o post Compartilhar em outros sites
omor 5 Denunciar post Postado Maio 24, 2014 crie uma tabela no banco de dados com o nome visitas, insira os campos id int autoincrement, ip varchar 50, visitas varchar 50, coloque o seguinte codigo na sua pagina logo no inicio de todo seu script, e lá em baixo dá um echo na variavel visitas testa ai pra ver se dá certo, aqui não deu nenhum erro <?php include "conexao.php"; $ip = getenv("REMOTE_ADDR"); $sql_seleciona = "SELECT * FROM visitas where ip = :ip"; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->bindValue(':ip',$ip,PDO::PARAM_STR); $query_seleciona->execute(); $contar = $query_seleciona->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'erro ao contar registros '.$error_seleciona->getMessage(); } foreach($contar as $res_contar){ $contIP = $res_contar['ip']; } $ip = getenv("REMOTE_ADDR"); $visitas = 1; if($ip != $contIP){ $visitas = $visitas + 1; $sql_seleciona = "INSERT INTO visitas (ip, visitas) values (:ip, :visitas)"; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->bindValue(':ip',$ip,PDO::PARAM_STR); $query_seleciona->bindValue(':visitas',$visitas,PDO::PARAM_STR); $query_seleciona->execute(); $contar = $query_seleciona->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'Erro ao inserir dados '.$error_seleciona->getMessage(); } }else{} echo $visitas; ?> arquivo de conexão com o banco de dados <?php define("HOST", "localhost"); define("DB", "contador"); define("USER", "root"); define("PASS", ""); $conexao = 'mysql:host='.HOST.';dbname='.DB; try{ $conecta = new PDO($conexao, USER, PASS); $conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); }catch(PDOexception $error_conecta){ echo 'erro ao conectar'.$error_conecta->getMessage(); } ?> crie uma tabela no banco de dados com o nome visitas, insira os campos id int autoincrement, ip varchar 50, visitas varchar 50, coloque o seguinte codigo na sua pagina logo no inicio de todo seu script, e lá em baixo dá um echo na variavel visitas testa ai pra ver se dá certo, aqui não deu nenhum erro<?phpinclude "conexao.php";$ip = getenv("REMOTE_ADDR");$sql_seleciona = "SELECT * FROM visitas where ip = :ip"; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->bindValue(':ip',$ip,PDO::PARAM_STR); $query_seleciona->execute(); $contar = $query_seleciona->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'erro ao contar registros '.$error_seleciona->getMessage(); } foreach($contar as $res_contar){ $contIP = $res_contar['ip'];}$ip = getenv("REMOTE_ADDR");$visitas = 1;if($ip != $contIP){$visitas = $visitas + 1;$sql_seleciona = "INSERT INTO visitas (ip, visitas) values (:ip, :visitas)"; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->bindValue(':ip',$ip,PDO::PARAM_STR); $query_seleciona->bindValue(':visitas',$visitas,PDO::PARAM_STR); $query_seleciona->execute(); $contar = $query_seleciona->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'Erro ao inserir dados '.$error_seleciona->getMessage(); }}else{} echo $visitas;?>arquivo de conexão com o banco de dados<?phpdefine("HOST", "localhost");define("DB", "contador");define("USER", "root");define("PASS", "");$conexao = 'mysql:host='.HOST.';dbname='.DB;try{$conecta = new PDO($conexao, USER, PASS);$conecta->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);}catch(PDOexception $error_conecta){ echo 'erro ao conectar'.$error_conecta->getMessage();}?> Compartilhar este post Link para o post Compartilhar em outros sites
omor 5 Denunciar post Postado Maio 31, 2014 <?php include "conexao.php"; $ip = getenv("REMOTE_ADDR"); $sql_seleciona = "SELECT * FROM visitas where ip = :ip"; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->bindValue(':ip',$ip,PDO::PARAM_STR); $query_seleciona->execute(); $contar = $query_seleciona->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'erro ao contar registros '.$error_seleciona->getMessage(); } foreach($contar as $res_contar){ $contIP = $res_contar['ip']; }$ip = getenv("REMOTE_ADDR"); $visitas = 1; if($ip != $contIP){$visitas = $visitas + 1; $sql_inserirVisitas = "INSERT INTO visitas (ip, visitas) values (:ip, :visitas)"; try{ $query_inserirVisitas = $conecta->prepare($sql_inserirVisitas); $query_inserirVisitas->bindValue(':ip',$ip,PDO::PARAM_STR); $query_inserirVisitas->bindValue(':visitas',$visitas,PDO::PARAM_STR); $query_inserirVisitas->execute(); $contar = $query_inserirVisitas->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_inserirVisitas){ echo 'Erro ao inserir dados '.$error_inserirVisitas->getMessage(); }}else{} $sql_seleciona = 'SELECT * FROM visitas'; try{ $query_seleciona = $conecta->prepare($sql_seleciona); $query_seleciona->execute(); $resultado_query = $query_seleciona->fetchAll(PDO::FETCH_ASSOC); $count = $query_seleciona->rowCount(PDO::FETCH_ASSOC); }catch(PDOexception $error_seleciona){ echo 'Erro ao selecionar visitas '.$error_seleciona->getMessage(); } foreach($resultado_query as $res_count){ $visitas = $res_count['visitas']; } echo $visitas;?> Compartilhar este post Link para o post Compartilhar em outros sites