Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 13:59 Der er 12 kommentarer og
1 løsning

antal hits

Jeg har et felt i min tabel som lægger én til hits hver gang der klikkes på et link....

Det virker fint, men jeg vil ikke have at der medregnes hver gang man trykker på opdater....

Nogen ideer?
Avatar billede sthen Nybegynder
14. marts 2002 - 14:01 #1
Smid en cookie som f.eks. forvinder efter 20 min.
Dernæst hvis cookie findes = læg ikke til
hvis ingen cookie = læg til
Avatar billede otis Nybegynder
14. marts 2002 - 14:03 #2
lav et felt der hedder ip hvor du smider brugerens ip
hvilket sprog snakker vi ?
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:03 #3
Det var da en mulighed, men hvad nu hvis folk har slået cookies fra?
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:04 #4
OTIS> php
Avatar billede otis Nybegynder
14. marts 2002 - 14:06 #5
fint :)
lav et felt der hedder
ip, og et det hedder tid:
så kører du en update hvis feltet ip eksisterer og tiden er over det aftalte tid:
hvis ip'en ikke er der, smider du den ind og med time()
ellers laver du intet >:P
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:10 #6
Otis> uhhh.... der kommer du nok til at specificere lidt.

er (næsten) helt ny med PHP :)
Avatar billede otis Nybegynder
14. marts 2002 - 14:21 #7
Jeg prøver lige en gang :)
Avatar billede otis Nybegynder
14. marts 2002 - 14:28 #8
Lidt Pesudo kode:

lad os sige det her er din tabel:
------------
|id|hits|ip|
------------

Så har du f.eks link: til hent.php?id=12
og så kan du bruge flg phpkode:

function hent_og_check_ip($id,$ip)
{
    $res = mysql_query("select hits from dintabel where id = '$id' and ip = '$ip') or die(mysql_error());
    if(mysql_num_rows($res){
        mysql_query("update din tabel set hits=hits+1 where ip = '$ip'") or die (mysql_error());
        return true;
    }
    elseif(!mysql_num_rows($res){
        mysql_query("insert into dintabel (hits, ip) values ('1','$ip')") or die(mysql_error());
        return true;
    }
}

så når der er en ide, så kør funktionen
eks.

if($id){
    hent_og_check_ip($id, $REMOTE_ADDR);
}
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:31 #9
kan jeg ikke sætte en variabel i mit link?

Lidt á la:
echo "<td><a href=\"forumVisThread.php?tId=$row[threadId]&forum=$forum\" onclick=\"$hit='unique'\" target=\"indhold\">$row[threadEmne]</a>";

Dette virker dog ikke :)
Avatar billede otis Nybegynder
14. marts 2002 - 14:41 #10
Jeg forstår dig ikke ?
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:49 #11
hvis jeg sætter linket til at angive url'en:

forumVisThread.php?tId=10&forum=blahblah&hit=unique

vil et klik på linket resultere i at man henvises til siden forumVisTread.

På denne side er der et check som kun opdaterer hits hvis $hit er lig 'unique'. Når hits så er opdateret sættes $hit til at være 'false'

Men fordi url'en indeholder $hit=unique vil det altid resultere i en opdatering af tabellen.

Min tanke er så, at hvis nu variablen kun bliver sat når brugeren klikker på linket, vil en opdatering ag browser vinduet ikke sætte variablen tilbage til 'unique'.

Forstår du hvor jeg vil hen?
Avatar billede otis Nybegynder
14. marts 2002 - 14:53 #12
jeg er på arbejde nu og har lige fået en opgave, kigger på det når jeg kommer hjem
Avatar billede kaptajnkemo Nybegynder
14. marts 2002 - 14:56 #13
takker....
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
Computerworld tilbyder specialiserede kurser i database-management

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