/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Unik counter
Fra : Buffy


Dato : 23-10-03 22:09

Hej ng
Her er vores counter
Den tæller kun folk en gang pr.30 min.
Er der nogen som kan få den til at tælle folk en gang og kun en gang for
altid ?


<?php
$padding =6; // Wie Viele Stellen angezeigt werden sollen.
$fpt = "counter.txt"; // Pfad zum File, in dem Die anzahl der bisherigen
Besucher gespeichert wird (CHMOD 666)
$lock_ip =1; // IP-Sperre 1=ein 0=aus
$ip_lock_timeout =30; // Hier wird die Zeit angegeben, wielange der
$fpt_ip = "ip.txt"; // Pfad zum File in dem die IP-Adressen gespeichert
werden.
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+");
$count = 1;
fwrite($count_dat,$count);
fclose($count_dat);
}
else {
$line = file($fpt);
$count = $line[0];
if ($lock_ip==0 || ($lock_ip==1 && checkIP($REMOTE_ADDR)==0)) {
$count_dat = fopen($fpt,"r+");
$count++;
fwrite($count_dat,$count);
fclose($count_dat);
}
}
echo sprintf ("%0"."$padding"."d",$count);

?>

Mvh. www.tjekmig.dk



 
 
Jacob Atzen (23-10-2003)
Kommentar
Fra : Jacob Atzen


Dato : 23-10-03 22:43

"Buffy" <sander@tjekmig.dk> writes:

> Hej ng
> Her er vores counter
> Den tæller kun folk en gang pr.30 min.
> Er der nogen som kan få den til at tælle folk en gang og kun en gang for
> altid ?

Nej. Du vil aldrig kunne slippe uden om at nogen vil blive talt 2
gange. Dit bedste bud er at sætte en cookie, men det er af flere
årsager stadig problematisk:

- Nogen tillader slet ikke cookies
- Nogen sletter jævnligt cookies
- Nogen vil være flere om at dele en browser, så du får talt antallet
af browsere og ikke antallet af folk.

--
Med venlig hilsen
- Jacob Atzen

Buffy (24-10-2003)
Kommentar
Fra : Buffy


Dato : 24-10-03 14:35

> Nej. Du vil aldrig kunne slippe uden om at nogen vil blive talt 2
> gange.

Ok, så to gange..
Men kan jeg ikke få den til, ikke at slette folks ip efter 30 min
og så i stedet beholde deres ip for altid og så ikke
tælle folk med en ip, som allerede står i ip txt ?

$ip_lock_timeout =30;

Hilsen www.tjekmig.dk



Jimmy (24-10-2003)
Kommentar
Fra : Jimmy


Dato : 24-10-03 18:23


"Buffy" <sander@tjekmig.dk> wrote in message
news:3f992a82$0$69945$edfadb0f@dread12.news.tele.dk...
> > Nej. Du vil aldrig kunne slippe uden om at nogen vil blive talt 2
> > gange.
>
> Ok, så to gange..

Der menes "flere gange".

> Men kan jeg ikke få den til, ikke at slette folks ip efter 30 min
> og så i stedet beholde deres ip for altid og så ikke
> tælle folk med en ip, som allerede står i ip txt ?

Jo, men det betyder jo at alle dem, der sidder bag et fælle netværk
(kollegier, skoler, arbejdspladser mm) typisk vil tælle som een bruger.

Du slipper ikke udenom at de samme brugere vil blive talt flere gange med
mindre du opretter et login system.

Mvh
Jimmy




Buffy (24-10-2003)
Kommentar
Fra : Buffy


Dato : 24-10-03 19:09


> Jo, men det betyder jo at alle dem, der sidder bag et fælle netværk
> (kollegier, skoler, arbejdspladser mm) typisk vil tælle som een bruger.

Det er også ok

Hvis i ikke kan finde ud af, hvad jeg skal klippe ud,
så kan jeg måske prøve noget som dette :

$ip_lock_timeout =9999999999999999;

eller hvad ?

Hilsen www.tjekmig.dk




Jimmy (24-10-2003)
Kommentar
Fra : Jimmy


Dato : 24-10-03 22:41


"Buffy" <sander@tjekmig.dk> wrote in message
news:3f996ab3$0$69964$edfadb0f@dread12.news.tele.dk...
>
> > Jo, men det betyder jo at alle dem, der sidder bag et fælle netværk
> > (kollegier, skoler, arbejdspladser mm) typisk vil tælle som een bruger.
>
> Det er også ok
>
> Hvis i ikke kan finde ud af, hvad jeg skal klippe ud,
> så kan jeg måske prøve noget som dette :
>
> $ip_lock_timeout =9999999999999999;
>
> eller hvad ?


Ja det kan du da prøve.

Mvh
Jimmy



Søg
Reklame
Statistik
Spørgsmål : 177554
Tips : 31968
Nyheder : 719565
Indlæg : 6408852
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste