Ir para conteúdo
Fórum Script Brasil
  • 0

Contador Maldito


Jacksonrs

Pergunta

Pessoal o contador não conta pelo arquivo txt é como se ele tivesse vida propria, conta sozinho, alguém ai podia dar uma olhada no codigo é pequeninho.

<?php

if($arquivo = fopen("01005687.txt", "r")){

while(!feof($arquivo)){

$linha = fgets($arquivo, 4096);

}

fclose($arquivo);

}else{

print "Erro de leitura";

}

if($arquivo = fopen("01005687.txt", "w")){

$acessos = (int) ($linha);

$acessos++;

fputs($arquivo, $acessos);

fclose($arquivo);

}else{

print "Erro na gravação";

}

print $acessos;

?>

é como se ele não lesse o txt no txt tem apenas o numero do acesso anterior por exemplo 95300 Abr.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Pessoal o contador não conta pelo arquivo txt é como se ele tivesse vida propria, conta sozinho, alguém ai podia dar uma olhada no codigo é pequeninho.

<?php

if($arquivo = fopen("01005687.txt", "r")){

while(!feof($arquivo)){

$linha = fgets($arquivo, 4096);

}

fclose($arquivo);

}else{

print "Erro de leitura";

}

if($arquivo = fopen("01005687.txt", "w")){

$acessos = (int) ($linha);

$acessos++;

fputs($arquivo, $acessos);

fclose($arquivo);

}else{

print "Erro na gravação";

}

print $acessos;

?>

é como se ele não lesse o txt no txt tem apenas o numero do acesso anterior por exemplo 95300 Abr.

JACSONR...

ISTO AQUI if($arquivo = fopen("01005687.txt", "r")) NÃO DEVIA SER if($arquivo == fopen("01005687.txt", "r"))

você TRATOU AS COMPARAÇÕES COMO ATRIBUTO E NÃO COMO COMPARAÇÕES.... eu não enxerguei nada mais... Se não está lendo o arquivo, as condições dos IF´s não estão sendo satisfeitas. Por que não? Talvez não dê pra usar a atribuição de $arquivo dentro do if... precise fazê-lo fora, e então perguntar se ele existe... será que estou falando besteira?!

tenta ai...

Editado por rutger2007
Link para o comentário
Compartilhar em outros sites

  • 0

Na verdade isso também está errado, ele quer testar se o arquivo fou aberto, logo fazer isso:

if($arquivo = fopen("01005687.txt", "r")){

Não tem sentido, você tem que fazer assim...

$arquivo = fopen("01005687.txt", "r");

if($arquivo)

Quanto ao problema em si, eu testei aqui e o número que é exibido é o que está gravador no txt...

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei resolver o seu problema , mas se quizer um contador com conexão no db, eu acho ele otimo.

Criando tabelas.

CREATE TABLE `contador` (

`id` INT(30) NOT NULL AUTO_INCREMENT PRIMARY KEY,

`data` VARCHAR(10) DEFAULT '00/00/0000' NOT NULL,

`ip` VARCHAR(30) NOT NULL

) TYPE = MYISAM;

arquivo CONTADOR.PHP

<?php

//Class conexao com db.

class conexao

{

var $userdb = "root";

var $passdb = "";

var $hostdb = "localhost";

var $namedb = "banco";

function conecta()

{

$conecta = mysql_connect($this->hostdb,$this->userdb,$this->passdb)or die(mysql_error());

mysql_select_db($this->namedb,$conecta)or die(mysql_error());

}

}

//Class contador

class contador extends conexao

{

var $ip;

var $data;

var $tabela = "contador";

function criaConexao()

{

$conexao = new conexao;

$conexao->conecta();

}

function pegaData()

{

$this->data = date("d/m/Y");

}

function pegaIp()

{

$this->ip = $_SERVER['REMOTE_ADDR'];

}

function visitaHoje()

{

$this->criaConexao();

$sql = mysql_query("SELECT ip,data FROM $this->tabela WHERE data='$this->data' AND ip='$this->ip'") or die(mysql_error());

if(mysql_num_rows($sql) <= "0")

{

mysql_query("INSERT INTO $this->tabela (id,data,ip) VALUES ('','$this->data','$this->ip')")or die(mysql_error());

}

}

function mostraVisitantes()

{

$this->criaConexao();

$sql = mysql_query("SELECT * FROM $this->tabela")or die(mysql_error());

$total= mysql_num_rows($sql);

echo "Total de visitas: ".$total;

}

function mostraVisitantesHoje()

{

$this->criaConexao();

$sql = mysql_query("SELECT * FROM $this->tabela WHERE data='$this->data'") or die(mysql_error());

$total = mysql_num_rows($sql);

echo "Visitas hoje: ".$total;

}

}

?>

arquivo INDEX.PHP

<?php

include("contador.php");

$contador = new contador;

$contador->pegaData();

$contador->pegaIp();

$contador->visitaHoje();

?>

<html>

<head>

<title>Contador de visitas</title>

</head>

<body>

<? $contador->mostraVisitantes(); ?><br><? $contador->mostraVisitantesHoje(); ?>

</body>

</html>

AUTOR DO CODIGO:

Eduardo Stuart - eduardo@eduardostuart.com

AT:Tullius

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...