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

(Resolvido) Contador de Visitas


Eder

Pergunta

Ola..

pessoal

peguei um esqueminha pra fazer um contador de visitas e funcionou legal, porem ele é feito em PHP, e depois é chamado em PHP(outro arquivo)..porem eu teria que chamar de um HTM, pois minha página onde será mostrada o contador de visitas é em HTM, ai ferrou não tou conseguindo chamar o PHP

Este é o esqueminha que estou usando:

arquivo:

CONTADOR.PHP

<html>
<body BACKGROUND="fundo_geral.png">
<?
$FILE = "contador.txt";
$IMG_DIR = "./numeros/";
$n_digitos = 4;
if (file_exists($FILE)) {
$fp = fopen("$FILE", "r+");
flock($fp, 1);
$count = fgets($fp, 4096);
$count += 1;
fseek($fp,0);
fputs($fp, $count);
flock($fp, 3);
fclose($fp);
} else {
echo "n consigo encontrar o ficheiro, check '\$file' var...<BR>";
exit;
}
chop($count);
$n_digitos = max(strlen($count), $n_digitos);
$count = substr("0000000000".$count, -$n_digitos);
$digits = preg_split("//", $count);
for($i = 0; $i <= $n_digitos; $i++) {
if ($digits[$i] != "") {
$html_result .= "<IMG SRC=\"$IMG_DIR$digits[$i].gif\">";
}
}
?>
<br>
<?php
echo $html_result;
?>
</body>
</html>
arquivo que chama este *.php pagina.php codigo abaixo:
<?php

require 'testando.php';

?>

beleza...se eu uso tudo *.php funciona certinho...porem eu tenho que chamar de um *.htm

por isto estou aqui...tem alguma maneira diferente que resolva meu problema??

não gostaria de usar de contadores gratuitos, pois trazem propaganda......

Grato

Link para o comentário
Compartilhar em outros sites

20 respostass a esta questão

Posts Recomendados

  • 0

Ola..Fernando.

Neste caso...qual seria a maneira mais facil para fazer um contador para que ele seja usado numa página *.htm??

Não queria usar estes gratuitos, pois eles tem propaganda e não pode haver... :blush:

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Passe para java script:

contador.php:

<?php
header('Content-type: text/javascript');
$FILE = "contador.txt";
$IMG_DIR = "./numeros/";
$n_digitos = 4;
if (file_exists($FILE)) {
$fp = fopen("$FILE", "r+");
flock($fp, 1);
$count = fgets($fp, 4096);
$count += 1;
fseek($fp,0);
fputs($fp, $count);
flock($fp, 3);
fclose($fp);
} else {
echo "document.write(\"não consigo encontrar o ficheiro, check '\$file' var...\")";
exit;
}
chop($count);
$n_digitos = max(strlen($count), $n_digitos);
$count = substr("0000000000".$count, -$n_digitos);
$digits = preg_split("//", $count);
for($i = 0; $i <= $n_digitos; $i++) {
if ($digits[$i] != "") {
$html_result .= "<IMG SRC=\"$IMG_DIR$digits[$i].gif\">";
}
}
echo 
echo "document.write(".$html_result.");";
?>
pagina.html:
<html>
<body BACKGROUND="fundo_geral.png">
<script src="contador.php" type="text/javascript"></script>
</body>
</html>

Ps.: Isso só funcionará se o seu HOST tiver PHP

Editado por hipnos na area
Link para o comentário
Compartilhar em outros sites

  • 0

Ola.....desculpa em responder..tava fora da empresa..

eu testei seu codigo e não funcou...... :blush:

ai você diz que:

Ps.: Isso só funcionará se o seu HOST tiver PHP

R.: bom se eu entendi direito....a sua colocação....eu roda php no servidor normalmente......tanto que o exemplo acima...se tiver duas php´s o contador.php e pagina.php funciona certinho o contador...mas no seu exemplo não funcou.

muito Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Tem um link para analizar ??

se tiver me passa ;)

talvez seja algo errado no PHP

tente visualizar assim(digite isso na barra de endereço):

http://seusite.com/contador.php
veja se o PHP retorna algum erro ;) [Editado] tente mudar esta linha:
$html_result .= "<IMG SRC=\"$IMG_DIR$digits[$i].gif\">";
para isso:
$html_result .= "<IMG SRC=\\\"".$IMG_DIR.$digits[$i].".gif"\\\">";

e verifica o erro ;)

{Editado2}

Bem mais uma pergunta se estiver a usar o Firefox verifica o erro que ele retorna (se retorna algum erro) e passa ele aqui ;)

Editado por hipnos na area
Link para o comentário
Compartilhar em outros sites

  • 0
Tem um link para analizar ??

se tiver me passa

talvez seja algo errado no PHP

tente visualizar assim(digite isso na barra de endereço):

CODE

http://seusite.com/contador.php

veja se o PHP retorna algum erro

R: Oba....fiz o Testezinho somente chamando o php..... e deu este erro:

Parse error: parse error, unexpected T_ECHO, expecting ',' or ';' in /users/webmaster/form/contador.php on line 29
a linha 29 é esta:
echo "document.write('".$html_result."');";
tente mudar esta linha: CODE $html_result .= "<IMG SRC=\"$IMG_DIR$digits[$i].gif\">"; para isso: CODE $html_result .= "<IMG SRC=\\\"".$IMG_DIR.$digits[$i].".gif"\\\">"; e verifica o erro
R.: bom....o erro não acontece chamando o pagina.html, porem não funca.. se eu chamar agora o http:\\www.site.com.br\form\contador.php ai aparece varios erros:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /users/webmaster/form/contador.php on line 25

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /users/webmaster/form/contador.php on line 25

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /users/webmaster/form/contador.php on line 25

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /users/webmaster/form/contador.php on line 25

bom é isto ai...se tiveres mais alguma ideia..por favor manda ver...pois preciso fazer funcionar num *.html chamando o contador.php

Grato

:)

Link para o comentário
Compartilhar em outros sites

  • 0

agora que eu percebi tinha um ECHO a mais faça assim:

<?php
header('Content-type: text/javascript');
$FILE = "contador.txt";
$IMG_DIR = "./numeros/";
$n_digitos = 4;
if (file_exists($FILE)) {
$fp = fopen("$FILE", "r+");
flock($fp, 1);
$count = fgets($fp, 4096);
$count += 1;
fseek($fp,0);
fputs($fp, $count);
flock($fp, 3);
fclose($fp);
} else {
echo "document.write(\"não consigo encontrar o ficheiro, check '\$file' var...\")";
exit;
}
chop($count);
$n_digitos = max(strlen($count), $n_digitos);
$count = substr("0000000000".$count, -$n_digitos);
$digits = preg_split("//", $count);
for($i = 0; $i <= $n_digitos; $i++) {
if ($digits[$i] != "") {
$html_result .= "<IMG SRC=\\\"".$IMG_DIR.$digits[$i].".gif\\\">";
}
}
echo "document.write(\"".$html_result."\");";
?>

Testei aqui e funcionou ;)

Link para o comentário
Compartilhar em outros sites

  • 0

carinha.....não sei porque..mas aqui na funca....simplimente a pagina.html carrega, mas o contador não aparece....

não da erro nada..simplismente o contador não da as caras....

será porque??

você diz que ai funcinou então aqui deveria funcionar...

:blush:

você fez igualzinho ai??

poderias me mandar os dois arquivos??

Grato

Link para o comentário
Compartilhar em outros sites

  • 0
você criou o arquivo "contador.txt" com a permissão 777 ?
R.: sim..criei....o que seria a permissão 777??não seria a permissão para abrir o contador.txt e gravar?? se for...tem sim..

qual é sua versão do PHP?

R.: aonde eu vejo a versão??

amigão......só sei lhe dizer que no começo deste tópico la em cima.....eu dei um exemplo usando somente o php não o html....e o exemplinho funciona certinho com php

Agora só não to compreendendo como não funciona a sua dica.....

ta tudo lá certinho...o contador.txt ta la dentro...

você vez ai...e deu certo...deveria dar aqui também?? :blush:

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Sua plataforma(servidor do PHP) é Windows??

Resolvi refazer o código do contador:

contadorjs.php

<?php
header('Content-type: text/javascript');
$COUNT_FILE = "contador.txt";
$IMG_DIR_URL = "numeros/";

$NB_DIGITS = 6;
if (file_exists($COUNT_FILE)) {
    $fp = fopen("$COUNT_FILE", "r+");
    $filesize = filesize($COUNT_FILE);
    $count = fread($fp,$filesize);
    $count += 1;
    fseek($fp,0);
    fputs($fp, $count);
    flock($fp, 3);
    fclose($fp);
} else {
    echo "document.write(\"Arquivo inisitente, verifique a variavel'\$COUNT_file ".$COUNT_FILE."' ...\");";
    $fp = fopen($COUNT_FILE,"w");
    fputs($fp, "1");
    fclose($fp);
    exit;
}
chop($count);
$nb_digits = max(strlen($count), $NB_DIGITS);
$count = substr("0000000000".$count, -$nb_digits);

$digits = preg_split("//", $count);

for($i = 0; $i <= $nb_digits; $i++) {
    if ($digits[$i] != "") {
        $html_result .=  "<IMG SRC=\\\"./".$IMG_DIR_URL."/".$digits[$i].".gif\\\" alt=\\\"".$digits[$i]."\\\">";
    }
}
echo "document.write(\"".$html_result."\");";
?>
pagina.html
<script type="text/javascript" src="contadorjs.php"></script>

testa ae ;), logo logo upo os arquivos

Link para o comentário
Compartilhar em outros sites

  • 0
Sua plataforma(servidor do PHP) é Windows??

R.: bom o servidor aonde esta o site é OPEN BSD

carinha testei e não funcionou. :blush:

se puderes mandar os arquivos testados por você...

ai eu testo aqui....ai a gente vai ver se é aqui mesmo o problema.

Grato

Link para o comentário
Compartilhar em outros sites

  • 0

Oba...Bom Dia!

carinha testei seus arquivos e não deu certo..

ai testei no FF e abrir o console de erros:

e deu critica de ERRO:

<br />
<b>Notice</b>:  Undefined variable:  html_result in <b>/users/webmaster/form/contadorjs.php</b> on line <b>31</b><br />
document.write("<IMG SRC=\"./numeros//0.gif\" alt=\"0\"><IMG SRC=\"./numeros//0.gif\" alt=\"0\"><IMG SRC=\"./numeros//0.gif\" alt=\"0\"><IMG SRC=\"./numeros//0.gif\" alt=\"0\"><IMG SRC=\"./numeros//0.gif\" alt=\"0\"><IMG SRC=\"./numeros//3.gif\" alt=\"3\">");
já no Opera deu este erro pelo consolo de erros dele:
JavaScript - http://www.site.com.br/form/html.html
Inline script compilation
Syntax error while loading: line 1 of linked script at http://www.site.com.br/form/contadorjs.php : 
<br /
--^

Bom é isto ai...amigo...

Grato

t+ :)

Link para o comentário
Compartilhar em outros sites

  • 0

sim agora percebi esqueci de definir a variavel:

corrigido:

<?php
header('Content-type: text/javascript');
$COUNT_FILE = "contador.txt";
$IMG_DIR_URL = "numeros/";

$NB_DIGITS = 6;
if (file_exists($COUNT_FILE)) {
    $fp = fopen("$COUNT_FILE", "r+");
    $filesize = filesize($COUNT_FILE);
    $count = fread($fp,$filesize);
    $count += 1;
    fseek($fp,0);
    fputs($fp, $count);
    flock($fp, 3);
    fclose($fp);
} else {
    echo "document.write(\"Arquivo inisitente, verifique a variavel'\$COUNT_file ".$COUNT_FILE."' ...\");";
    $fp = fopen($COUNT_FILE,"w");
    fputs($fp, "1");
    fclose($fp);
    exit;
}
chop($count);
$nb_digits = max(strlen($count), $NB_DIGITS);
$count = substr("0000000000".$count, -$nb_digits);

$digits = preg_split("//", $count);
$html_result = "";
for($i = 0; $i <= $nb_digits; $i++) {
    if ($digits[$i] != "") {
        $html_result .=  "<IMG SRC=\\\"./".$IMG_DIR_URL."/".$digits[$i].".gif\\\" alt=\\\"".$digits[$i]."\\\">";
    }
}
echo "document.write(\"".$html_result."\");";
?>

Link para o comentário
Compartilhar em outros sites

  • 0

Carinha hipnos na area

Cara....te confesso que eu já estava meio que desanimado com o esqueminha :blush:

Mas....amigão..deu certo...funcionou certinho.....fiquei muito contente mesmo.

Não vou precisar usar o contador de algum site qualquer......

muito Grato mesmo...você me quebrou uma....

Abraço

e t+ :D

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...