Avatar billede ohmish Nybegynder
03. marts 2003 - 14:26 Der er 14 kommentarer og
2 løsninger

Brugere/gæster online... hva med cookies slået fra??

Hvordan tæller jeg et bruger/gæst-besøg med på hjemmesiden, hvis session/cookies er slået fra i dennes browser? jeg bruger mysql.. Det hele virker fint, hvis brugeren har cookies tilladt.
Ingen links uden forklaring tak :)
Avatar billede ztyxx Nybegynder
03. marts 2003 - 14:28 #1
sessions kan man ikke slå fra, kun cookies.
Avatar billede ohmish Nybegynder
03. marts 2003 - 14:30 #2
ka du sige hvordan jeg gør så? hvis jeg f.eks fravælger cookies i min browser så gemmes værdierne ikke, og session_id genskabes ved hvert klik.
Avatar billede ztyxx Nybegynder
03. marts 2003 - 14:35 #3
hvorfor så ikke udelukkende bruge sessions, og glemme cookies??
Avatar billede sukos Juniormester
03. marts 2003 - 14:49 #4
Kun sessions: (fungerer nogenlunde ;O])

<?php
session_start();
require("databasefil"); //med connect og så'n
$ligenu = time();
$del = time()-300; //slet efter 5 min.,  60 sek * 5

if (!isset($_SESSION['online']) || $_SESSION['online'] < time()-300) {
$_SESSION['online'] = $ligenu;
mysql_query("INSERT INTO onlinebrugere (ip, session, tid) VALUES ('$_SERVER[REMOTE_ADDR]', '$_SESSION[online]', '$ligenu')")or die(mysql_error());
    }else{
mysql_query("UPDATE onlinebrugere set tid='$ligenu' WHERE session='$_SESSION[online]'")or die(mysql_error());
}

mysql_query("DELETE FROM onlinebrugere WHERE tid < '$del'")or die(mysql_error());

$row = mysql_query("SELECT session FROM onlinebrugere")or die(mysql_error());

$antal_rows = mysql_num_rows($row);

echo"Online-brugere ialt: $antal_rows";

?>
Avatar billede tefcke Nybegynder
03. marts 2003 - 14:49 #5
Du kan jo enten gemme session id eller deres ip i en database, sammen med hvornår det er blevet gemt (timestamp).

Så hver gang en bruger klikker ind på en side, opdateres dette timestamp for den givne bruger.

Samtidig tjekker du om nogen af alle de andre bruger i databasen er "timed ud" (f.eks. om deres timestamp er mere end 5min gammelt) og slettes så hvis det er.

Derefter laver du lige en : select count(*) as online from onlineusers;
og du ved hvor mange som er online
Avatar billede sukos Juniormester
03. marts 2003 - 14:55 #6
Hvis du så vil bruge ip'en som tjek for antal brugere,

$row = mysql_query("SELECT ip FROM onlinebrugere WHERE ip != '$_SERVER[REMOTE_ADDR]'")or die(mysql_error());

$antal_rows = mysql_num_rows($row);

echo"Online-brugere ialt: ";

if($antal_rows == 0) {
echo 1;
}else{
echo $antal_rows;
}
Avatar billede sukos Juniormester
03. marts 2003 - 15:09 #7
eks. kan ses her:

http://www.showsource.dk/online.php

koden kunne jo nok optimeres noget! :O)
Avatar billede ohmish Nybegynder
03. marts 2003 - 15:17 #8
sukos> virker ikke som det skal, hvis jeg fravælger cookies i browseren...
Avatar billede ohmish Nybegynder
03. marts 2003 - 15:19 #9
jeg har al kode jeg ska bruge... men mangler bare den log-funktion der.. måske skal jeg bruge ip'en? sessions burde jo køre uden cookies! men det gør det bare ikke... session'en vil lægge en cookie.
Avatar billede sukos Juniormester
03. marts 2003 - 15:21 #10
næh, det fumker ikke helt efter hensigten! :O)
Der er lige lidt der skal fixes
Avatar billede ohmish Nybegynder
03. marts 2003 - 15:21 #11
Avatar billede ohmish Nybegynder
03. marts 2003 - 15:23 #12
hmm.. det er ellers fint nok med ip logning.. men det burde være muligt med sessions! jeg fatter det ik.. alle siger at sessions ikke kan slås fra af brugeren.. men det kan det jo.
Avatar billede ohmish Nybegynder
03. marts 2003 - 15:24 #13
du får lidt point alligevel, for indsatsen
Avatar billede sukos Juniormester
03. marts 2003 - 15:29 #14
Avatar billede sukos Juniormester
03. marts 2003 - 16:23 #15
Løsningen er at lade alle links følge id'et
http://new.sukos.dk/index2.php

D.v.s. lav et tjek om du kan sætte en cookie, og hvis ikke sørge for at alle links for brugerens vedkommende følger id'et
Avatar billede sukos Juniormester
03. marts 2003 - 16:43 #16
hmm, får det sgutte lige til at funke helt korrekt, men det er noget derudaf.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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

IT-JOB

Det Nationale Forskningscenter for Arbejdsmiljø

IT-sikkerhedsspecialist med fokus på AI inden for forskning

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Chef for SAP-forretningsspecialister

HusCompagniet A/S

Senior data engineer