Avatar billede gizmo234 Nybegynder
25. januar 2003 - 18:39 Der er 5 kommentarer og
1 løsning

Counter der kun tæller én gang

Hej.
Jeg er nybegynder med php, men vil gerne lave en counter der kun tæller en person én gang...
Jeg havde tænkt mig noget med at der blev lagt en cookie ind på personens computer, som så blev slettet fx en time senere.
Jeg har læst de andre svar der har været om dette problem, men har ikke fået det til at virke....
Der skal helst kun bruges PHP, men hvis det ikke kan gøres uden, må der også gerne bruge mysql :)
Hilsen
Gizmo234
Avatar billede eagle124 Nybegynder
25. januar 2003 - 18:41 #1
www.chart.dk der kan du få en counter der kun tæller en gang
Avatar billede eagle124 Nybegynder
25. januar 2003 - 18:42 #2
det er godt nok ikke en du selv laver men den sparer dig da for en masse arbejde
Avatar billede alrua Nybegynder
25. januar 2003 - 18:49 #3
jeg bruger selv dette script...
Det sætter en cookie som udløber efter 1 døgn og gemmer desuden brugerens IP samt tidspunktet i en database, så selvom brugeren har slået cookies fra bliver han kun talt én gang i døgnet.

Scriptet:

<?
if(!isset($_COOKIE['counted'])) {
    $var = time()-64800;
    $user_ip = ( !empty($_SERVER['REMOTE_ADDR']) ) ? $_SERVER['REMOTE_ADDR'] : ( ( !empty($HTTP_ENV_VARS['REMOTE_ADDR']) ) ? $HTTP_ENV_VARS['REMOTE_ADDR'] : $REMOTE_ADDR );
    $query = "SELECT * FROM counter WHERE ip = '$user_ip' AND time > " . $var;
   
    $result = mysql_query($query) or die(mysql_error());
    if(mysql_num_rows() == 0) {
        $query = "insert into counter set ip = '" . $user_ip . "', time = " . time();
        mysql_query($query) or die(mysql_error());
        setcookie('counted',1,time()+64800);
    }
}
?>

Og tabellen i databasen:

CREATE TABLE counter (
  id bigint(20) unsigned NOT NULL auto_increment,
  ip char(15) NOT NULL default '',
  time int(11) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;


Så kan du hente antal besøge ud sådan her:

<?php
$query = "SELECT COUNT(*) FROM counter";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_row($result);
$visitors = $row[0];
?>
Avatar billede alrua Nybegynder
25. januar 2003 - 18:49 #4
og det skulle selvfølgelig have været et svar...
Avatar billede gizmo234 Nybegynder
25. januar 2003 - 19:08 #5
Hej igen :)
Jeg fik alrua's til at virke... Tusinde tak!

Og til dig eagle124, så vil jeg ikke så gerne have de der chart.dk og nope.dk, jeg vil hellere lave min egen! :)
Mange tak for hjælpen!
Hilsen
Gizmo234
Avatar billede alrua Nybegynder
25. januar 2003 - 19:09 #6
selv tak da :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester