Contador de cliques no link

Aqui você verá artigos sobre PHP

Moderador: web

responder a dúvida

Contador de cliques no link

Mensagem por web Offline » Sáb Fev 24, 2007 3:34 pm

Vou passar aqui um script de contador de clicks em um link.
Siga os passos:

1º No diretório raiz que vai rodar o contador, crie uma pasta de nome: dados/ e dê permissão (CHMOD) 777, nesta pasta vão ficar os arquivos com a contagem.

2º Copie o código abaixo e coloque no diretório raiz como: click.php
- arquivo que conta os clicks e redireciona para o url -
Código: Selecionar todos
<?php
extract($_GET);

//arquivo
$base="dados/".$url.".dat";

if($_COOKIE['oip']=="") {
$tempo_cookie = "10"; // tempo em segundos - 60 para um minuto
$ip = $_SERVER['REMOTE_ADDR']; // pega o IP
setcookie("oip", $ip, time()+($tempo_cookie)); // cria o cookie

// cria
if(!file_exists("$base")) {
$fp=fopen("$base","w");
fputs($fp,"0");
fclose($fp);
}

$fp=fopen("$base","r+");
$nb=fgets($fp,10);
$nb++;
fseek($fp,0);
fputs($fp,$nb);
fclose($fp);

} else {

//echo $_COOKIE['oip'];

}
?>

<meta http-equiv="refresh" content="0;URL=http://<?=$url;?>" />

3º Copie o código abaixo e coloque no diretório raiz como: mostra_clique.php
- arquivo que mostra o número de clicks que o link recebeu -
Código: Selecionar todos
<?php
extract($_GET);
$base=str_replace ("/", "_", "$url");
$base="dados/".$base.".dat";
$nb=0;
if(file_exists("$base")) {
$fp=fopen("$base","r");
$nb=fgets($fp,4096);
fclose($fp);
}
echo "document.write(\"$nb\");";
?>

4º Copie o código abaixo e coloque no diretório raiz como: admin.php
- arquivo de administração do contador, onde você deleta os clicks -
Código: Selecionar todos
<?php
extract($_GET);

/* senha de permissão para limpar contador */
$passwd="123456";
?>
<center>
números de clicks
<br>
<br>
<?
switch($action) {
case "sup";
echo "deseja deletar todo o contador? <b>$fic</b>
<br>
<a href='admin.php?action=supsuite&fic=$fic'>sim</a>
<a href='admin.php'>não</a>\n";
break;

case "supsuite";
echo "<form action='admin.php' method='GET'>
<input type='hidden' name='action' value='supfin'>
<input type='hidden' name='fic' value='$fic'>
senha de administrador:
<input type='text' name='passe' value=''>
<input type='submit' value='Continuar'>\n";
break;

case "supfin";
if($passe==$passwd) {
unlink("dados/${fic}.dat");
echo "o contador <b>$fic</b> foi resetado!\n";
}
else
{
echo "senha do administrado inválida.\n";
}
echo "<br><br><a href=\"admin.php\">retornar</a>\n";
break;

default;
if(!file_exists("dados")) {
echo "<font id=font>Erro!";
}
else
{
echo "<table border='0' cellpading=1 cellspacing=1 style='border:1px solid #fefefe;'>
<tr>
<td>Endereços</td>
<td>número de Clicks</td>
<td>Reiniciar Contador</td>
</tr>";
$handle=opendir("dados");
while($fichier=readdir($handle)) {
if($fichier!="." && $fichier!="..") {
$file=fopen("dados/$fichier","r");
$nb=fgets($file,10);
fclose($file);
$url=str_replace("_","/",$fichier);
$url=str_replace(".dat","",$url);
echo "<tr>
<td><a href='http://$url' target='_blank'>http://$url</a></td>
<td align=center>$nb</td>
<td align=center><a href='admin.php?action=sup&fic=$url'>Deletar</a></td>
</tr>";
}
}
closedir($handle);
}
break;
}
?>   
</table>

5º veja um exemplo abaixo de como devem ser seus links:

Código: Selecionar todos
<a href="click.php?url=www.codigosnaweb.com" target="_blank">codigosnaweb.com</a>
Já teve: <script language="javascript" src="mostra_clique.php?url=www.codigosnaweb.com"></script> clique(s)
<br>
<a href="click.php?url=www.google.com" target="_blank">google.com</a>
Já teve: <script language="javascript" src="mostra_clique.php?url=www.google.com"></script> clique(s)

<br><br>

<?php
if(isset($_COOKIE['oip'])) {
echo "O cookie existe";
} else {
echo "O cookie já não existe ou não foi criado";
}
?>



detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb [@] hotmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 11904
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil

Contador de cliques no link

Mensagem por web Offline » Seg Nov 02, 2009 7:20 pm

O script sofreu algumas alterações para que pudesse ser usado com links internos, com pastas e documentos

O click.php agora é o seguinte:

Código: Selecionar todos
<?php
ob_start();
extract($_GET);
$redireciona = "$url";
$url= str_replace("://", "-", $url);
$url= str_replace(".", "-", $url);
$url= str_replace("/", "-", $url);
//arquivo
$base="dados/".$url.".dat";
if($_COOKIE['oip']=="") {
$tempo_cookie = "10"; // tempo em segundos - 60 para um minuto
$ip = $_SERVER['REMOTE_ADDR']; // pega o IP
@setcookie("oip", $ip, time()+($tempo_cookie)); // cria o cookie
// cria
if(!file_exists("$base")) {
$fp=@fopen("$base","w");
@fputs($fp,"0");
@fclose($fp);
}
$fp=@fopen("$base","r+");
$nb=@fgets($fp,10);
$nb++;
fseek($fp,0);
fputs($fp,$nb);
fclose($fp);
} else {
//echo $_COOKIE['oip'];
}
?>
<meta http-equiv="refresh" content="0;URL=<?php echo $redireciona; ?>" />

No arquivo que vai ter o click e a mostragem dos clicks recebidos, você deve seguir esse modelo

Código: Selecionar todos
<a href="click.php?url=http://www.codigosnaweb.com/teste.php" target="_blank">codigosnaweb.com</a>
Já teve: <script language="javascript" src="mostra_clique.php?url=http-www-codigosnaweb-com-teste-php"></script> clique(s)

Note que o valor passado no click, é o URL comum. Já no mostra_clique.php, deve ser passado o valor trocando

:// por - "traço"
e / e . por - "traço"

detalhes...

Gostou do que encontrou? Divulgue, indique, participe, agradeça pelas respostas.

Faço scripts personalizados ou reparos em scripts. Orçamento MSN codigosnaweb [@] hotmail [.] com

Avatar do usuário
web
ADMIN
ADMIN
Mensagens: 11904
Registrado em: Sáb Jan 20, 2007 6:08 pm
Localização: RJ / RJ / Brasil


responder a dúvida

Voltar para Artigos sobre PHP

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante