Back to top

Autore Topic: errore contatore visite basato su ip  (Letto 3024 volte)

Offline spirit19

  • Nuovo arrivato
  • *
  • Post: 12
    • Mostra profilo
errore contatore visite basato su ip
« il: 16 Mag 2009, 18:29:20 »
salve a tutti vorrei un aiuto per un contatore visite, che memorizza ip dell utente per evitare che si aggiorna i numero delle visite quando si cambia pagina, l errore che da e questo
Warning: file() [function.file]: Filename cannot be empty in /web/htdocs/www.xxx.xxx/home/templates/xxx/counter.php on line 28

Warning: fopen() [function.fopen]: Filename cannot be empty in /web/htdocs/www.xxx.xxx/home/templates/xxx/counter.php  on line 29

Warning: fwrite(): supplied argument is not a valid stream resource in /web/htdocs/www.xxx.xxx/home/templates/xxx/counter.php  on line 41

Warning: fclose(): supplied argument is not a valid stream resource in /web/htdocs/www.xxx.xxx/home/templates/xxx/counter.php  on line 42
Ps le 3 x lo messe al posto del nome dell sito.
Nella riga 28 ho: $ip_array = file($fpt_ip); la quale $fpt_ip punta ad $fpt_ip = "ip.txt"; che è il file che memorizza ip
Nella riga 29 ho: $reload_dat = fopen($fpt_ip,"w");
nella riga 41 ho: fwrite($reload_dat,"$rem_addr|$this_time\n"); con  $reload_dat  che punta alla riga 29
nella riga 42 ho: fclose($reload_dat); con  $reload_dat  che punta alla riga 29
ho provato questo contatore su una pagina prova.php  creata sempre nella cartella del templates in uso e funziona, ma ho notato se questa pagina prova.php la rinomino in index.php mi da gli errori, mi sapete dare un aiuto, se volete mi metto tutti il codice del contatore .
grazie a tutti

Offline maicolstaip

  • Global Moderator
  • Instancabile
  • ********
  • Post: 17623
  • Sesso: Maschio
    • Mostra profilo
Re:errore contatore visite basato su ip
« Risposta #1 il: 16 Mag 2009, 18:56:40 »
Ciao,
non so a riguardo dell'errore ma come lo implementi?
Hai provato a creare un modulo HTML personalizzato e schiaffarci il codice?
Non si risponde a PM tecnici. Postate sul forum. Grazie.

Offline spirit19

  • Nuovo arrivato
  • *
  • Post: 12
    • Mostra profilo
Re:errore contatore visite basato su ip
« Risposta #2 il: 16 Mag 2009, 19:13:22 »
ciao, ho creato un file contatore.php  con tutto il codice php per il contatore ppoi nel index uso un include per inserire contatore.php

Offline spirit19

  • Nuovo arrivato
  • *
  • Post: 12
    • Mostra profilo
Re:errore contatore visite basato su ip
« Risposta #3 il: 18 Mag 2009, 18:40:51 »
questo e il codice del contatrore

<?php

$img = "images/";

// url to the animated digits
$animated_img = "images_ani/";

// How many digits to show
$padding = 6;

// digit width and height
$width = 16;
$height = 22;

// path to the log file
$fpt = "counter.txt"; // log file - chmod it to 666

// optional configuration settings

$lock_ip =1; // IP locking to avoid reloading 1=yes 0=no
$ip_lock_timeout =1; // in minutes
$fpt_ip = "ip.txt"; // IP log file - chmod it to 666

// end configuration

function checkIP($rem_addr) {
  global $fpt_ip,$ip_lock_timeout;
  $ip_array = file($fpt_ip);
  $reload_dat = fopen($fpt_ip,"w");
  $this_time = time();
  for ($i=0; $i<sizeof($ip_array); $i++) {
    list($ip_addr,$time_stamp) = split("\|",$ip_array[$i]);
    if ($this_time < ($time_stamp+60*$ip_lock_timeout)) {
      if ($ip_addr == $rem_addr) {
        $found=1;
      } else {
        fwrite($reload_dat,"$ip_addr|$time_stamp");
      }
    }
  }
  fwrite($reload_dat,"$rem_addr|$this_time\n");
  fclose($reload_dat);
  return ($found==1) ? 1 : 0;
}

if (!file_exists($fpt)) {
  $count_dat = fopen($fpt,"w+");
  $digits = 0;
  fwrite($count_dat,$digits);
  fclose($count_dat);
}
else {
  $line = file($fpt);
  $digits = $line[0];
  if ($lock_ip==0 || ($lock_ip==1 && checkIP($REMOTE_ADDR)==0)) {
    $count_dat = fopen($fpt,"r+");
    $digits++;
    fwrite($count_dat,$digits);
    fclose($count_dat);
  }
}
$digits = sprintf ("%0".$padding."d",$digits);
$ani_digits = sprintf ("%0".$padding."d",$digits+1);
echo "<table cellpadding=0 cellspacing=0 border=0><tr align=center>\n";
$length_digits = strlen($digits);
for ($i=0; $i < $length_digits; $i++) {
  if (substr("$digits",$i,1) == substr("$ani_digits",$i,1)) {
    $digit_pos = substr("$digits",$i,1);
    echo ("<td><img src=$img$digit_pos.gif width=$width height=$height></td>\n");
  } else {
    $digit_pos = substr("$ani_digits",$i,1);
    echo ("<td><img src=$animated_img$digit_pos.gif width=$width height=$height></td>\n");
  }
}
echo "</tr></table>\n";
?>

 



Web Design Bolzano Kreatif