/ 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
Online users" tæller kun op og ikke ned...~
Fra : Martin


Dato : 28-05-01 21:33

Jeg ved ikke hvorfor men jeg kan ikke få en "online users" fuktion til at
virke helt som den skal....
Jeg har hentet den på www.phpuniverset.dk. Det er et færdigt eksempel, så
det skulle virke...

Der kommer ikke nogle fejlmeddelser i browseren.
Når man førstegang kommer ind på siden skrives der rigtignok 1 bruger
online.
Hvis man reloader med f.eks F5 , ja så er der 2 brugere online.
Hvis man bliver ved med at reloade så kommer der flere og flere brugere
online...

Hvis man venter med at reloade i ca 5 min, så er antallet af bruge
formindsket.

Scriptet virker nok som det skal, men der må være en fejl i databasen....
Jeg bruger PhpMyAdmin. Er der noget som jeg skal være opmærksom på?

Her er scriptet:

<?php
print '<font face="helvetica" font size="-1" color="#">';

$mysql_host = "127.0.0.1";
$mysql_user = "database";
$mysql_password = "kode";
$ip = $REMOTE_ADDR;

mysql_connect($mysql_host,$mysql_user,$mysql_password);
mysql_select_db("database");
$time = explode(" ",microtime());
$array1 = $time[0];
$array2 = $time[1];

$r = mysql_fetch_row( mysql_query("SELECT * FROM online_users WHERE ip
like '$ip'"));
if ($r == (false)) {
mysql_query("INSERT INTO online_users (id,ip,name,date) values
('','$ip','','$array2')");
}
mysql_query("DELETE FROM online_users where date < $array2 - 400");
$res = mysql_query("SELECT * FROM online_users");
$tal = mysql_num_rows($res);
if ($tal == "1") {
print "1 bruger online ";
}
else {
print $tal;
print " brugere online";
}

?>



 
 
Jacob Atzen (28-05-2001)
Kommentar
Fra : Jacob Atzen


Dato : 28-05-01 22:40

"Martin" <martinwa@iname.com> writes:

> Hvis man reloader med f.eks F5 , ja så er der 2 brugere online.
> Hvis man bliver ved med at reloade så kommer der flere og flere brugere
> online...

> Hvis man venter med at reloade i ca 5 min, så er antallet af bruge
> formindsket.

Det lyder jo lidt som om, at brugerne først bliver disconnected fra
webserveren efter et vist interval - og det lyder da meget rimeligt ikke?

- Jacob

Jonas Delfs (28-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 28-05-01 23:05

"Jacob Atzen" <jacob_a@os.dk> skrev i en meddelelse
news:m366elf90f.fsf@morpheus.dyndns.dk...
> "Martin" <martinwa@iname.com> writes:
>
> > Hvis man reloader med f.eks F5 , ja så er der 2 brugere online.
> > Hvis man bliver ved med at reloade så kommer der flere og flere brugere
> > online...
>
> > Hvis man venter med at reloade i ca 5 min, så er antallet af bruge
> > formindsket.
>
> Det lyder jo lidt som om, at brugerne først bliver disconnected fra
> webserveren efter et vist interval - og det lyder da meget rimeligt ikke?

Jow, det gør det da - men det lader jo ikke til at hans IP bliver gemt i
databasen, siden den bare tæller op, og op, og op...

Martin.> Hvad står der i mysql-tabellen? -en masse rows med din IP?

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. Et geni behersker kaos"



Michael Jensen (29-05-2001)
Kommentar
Fra : Michael Jensen


Dato : 29-05-01 00:31


"Jonas Delfs" <nospam@delfs.dk> wrote in message
news:9eui14$kud$1@sunsite.dk...
> "Jacob Atzen" <jacob_a@os.dk> skrev i en meddelelse
> news:m366elf90f.fsf@morpheus.dyndns.dk...
> > "Martin" <martinwa@iname.com> writes:
> >
> > > Hvis man reloader med f.eks F5 , ja så er der 2 brugere online.
> > > Hvis man bliver ved med at reloade så kommer der flere og flere
brugere
> > > online...
> >
> > > Hvis man venter med at reloade i ca 5 min, så er antallet af bruge
> > > formindsket.
> >
> > Det lyder jo lidt som om, at brugerne først bliver disconnected fra
> > webserveren efter et vist interval - og det lyder da meget rimeligt
ikke?
>
> Jow, det gør det da - men det lader jo ikke til at hans IP bliver gemt i
> databasen, siden den bare tæller op, og op, og op...
>
> Martin.> Hvad står der i mysql-tabellen? -en masse rows med din IP?

Man kunne jo også starte en session og så smide session id'et ind som key,
så render man da ikke ind i problemerne med folk der sidder bag samme ip
adresse.

--
Hilsen Michael


Martin (29-05-2001)
Kommentar
Fra : Martin


Dato : 29-05-01 07:24



Sådan ser det ud i phpMyAdmin....

Field Type Attributes Null Default Extra
ip int(4) No 0
online_users int(11) No 0
id int(4) No 0
name int(4) No 0
date int(4) No 0


Her er et View dump (schema) of database:



# phpMyAdmin MySQL-Dump
# http://phpwizard.net/phpMyAdmin/
#
# Host: localhost Database : mwa

# --------------------------------------------------------
#
# Table structure for table 'online_users'
#

CREATE TABLE online_users (
ip int(4) DEFAULT '0' NOT NULL,
online_users int(11) DEFAULT '0' NOT NULL,
id int(4) DEFAULT '0' NOT NULL,
name int(4) DEFAULT '0' NOT NULL,
date int(4) DEFAULT '0' NOT NULL
);

#
# Dumping data for table 'online_users'
#

INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991117144');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991117080');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991117076');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991117072');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '127',
'0', '0', '0', '991116765');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991116788');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991116796');
INSERT INTO online_users (ip, online_users, id, name, date) VALUES ( '212',
'0', '0', '0', '991117069');


På dette tidspunkt hvor dette er kopieret var der 8 online...

Martin





"Jonas Delfs" <nospam@delfs.dk> skrev i en meddelelse
news:9eui14$kud$1@sunsite.dk...
> "Jacob Atzen" <jacob_a@os.dk> skrev i en meddelelse
> news:m366elf90f.fsf@morpheus.dyndns.dk...
> > "Martin" <martinwa@iname.com> writes:
> >
> > > Hvis man reloader med f.eks F5 , ja så er der 2 brugere online.
> > > Hvis man bliver ved med at reloade så kommer der flere og flere
brugere
> > > online...
> >
> > > Hvis man venter med at reloade i ca 5 min, så er antallet af bruge
> > > formindsket.
> >
> > Det lyder jo lidt som om, at brugerne først bliver disconnected fra
> > webserveren efter et vist interval - og det lyder da meget rimeligt
ikke?
>
> Jow, det gør det da - men det lader jo ikke til at hans IP bliver gemt i
> databasen, siden den bare tæller op, og op, og op...
>
> Martin.> Hvad står der i mysql-tabellen? -en masse rows med din IP?
>
> --
> Mvh. Jonas Delfs
> http://delfs.dk
>
> "Kun en tåbe rydder op. Et geni behersker kaos"
>
>



Christian Joergensen (29-05-2001)
Kommentar
Fra : Christian Joergensen


Dato : 29-05-01 08:20

Martin <martinwa@iname.com> wrote:

> ip  int(4)    No  0

Prøv at lave den til varchar(16)

--
Christian Jørgensen | "Ford, you're turning into a penguin"
http://www.razor.dk | "Stop it"

Martin (29-05-2001)
Kommentar
Fra : Martin


Dato : 29-05-01 09:50

Herligt nu virker det....

....men hvordan kunne man rent teknisk lave det så flere computere på samme
ip ikke bare tæller som en computer?

Martin



"Christian Joergensen" <mail@phpguru.dk> skrev i en meddelelse
news:6521056.46Emhk5qWA@flaf...
> Martin <martinwa@iname.com> wrote:
>
> > ip int(4) No 0
>
> Prøv at lave den til varchar(16)
>
> --
> Christian Jørgensen | "Ford, you're turning into a penguin"
> http://www.razor.dk | "Stop it"



Martin Højriis Krist~ (29-05-2001)
Kommentar
Fra : Martin Højriis Krist~


Dato : 29-05-01 10:16

"Martin" <martinwa@iname.com> skrev i en meddelelse
news:9evnsi$2pd5$1@news.cybercity.dk...
> ...men hvordan kunne man rent teknisk lave det så flere computere på samme
> ip ikke bare tæller som en computer?

cookies/sessions

--
Med Venlig Hilsen

Martin Højriis Kristensen
Svar bedes baseret på RFC1855
Jeg repræsenterer med denne udtalelse mig selv og ikke TDC Internet


Jonas Delfs (29-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 29-05-01 10:41

"Martin" <martinwa@iname.com> skrev i en meddelelse
news:9evnsi$2pd5$1@news.cybercity.dk...
> Herligt nu virker det....
>
> ...men hvordan kunne man rent teknisk lave det så flere computere på samme
> ip ikke bare tæller som en computer?

Ikke 100% godt, men skulle være bedre end $REMOTE_ADDR:

$IP = $GLOBALS['REMOTE_ADDR'];
$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];
if (($FIP) && ($FIP != "unknown")){
$IP = $FIP;
}
$IP = explode(",", $IP);
$IP = $IP[0];

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. Et geni behersker kaos"



Martin (29-05-2001)
Kommentar
Fra : Martin


Dato : 29-05-01 10:46

Ok.

Jeg prøver at kikke på det....

Tak for hjælpen.

Martin



"Jonas Delfs" <nospam@delfs.dk> skrev i en meddelelse
news:9evqo5$77c$1@sunsite.dk...
> "Martin" <martinwa@iname.com> skrev i en meddelelse
> news:9evnsi$2pd5$1@news.cybercity.dk...
> > Herligt nu virker det....
> >
> > ...men hvordan kunne man rent teknisk lave det så flere computere på
samme
> > ip ikke bare tæller som en computer?
>
> Ikke 100% godt, men skulle være bedre end $REMOTE_ADDR:
>
> $IP = $GLOBALS['REMOTE_ADDR'];
> $FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];
> if (($FIP) && ($FIP != "unknown")){
> $IP = $FIP;
> }
> $IP = explode(",", $IP);
> $IP = $IP[0];
>
> --
> Mvh. Jonas Delfs
> http://delfs.dk
>
> "Kun en tåbe rydder op. Et geni behersker kaos"
>
>



Jonas Delfs (29-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 29-05-01 10:52

"Martin" <martinwa@iname.com> skrev i en meddelelse
news:9evr62$2sfp$1@news.cybercity.dk...
> Ok.
>
> Jeg prøver at kikke på det....
>
> Tak for hjælpen.

No problemos.

Nøjj - se her: http://www.usenet.dk/netikette/quote.html

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. Et geni behersker kaos"



Peter Brodersen (29-05-2001)
Kommentar
Fra : Peter Brodersen


Dato : 29-05-01 17:51

On Tue, 29 May 2001 11:40:43 +0200, "Jonas Delfs" <nospam@delfs.dk>
wrote:

>$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];
>if (($FIP) && ($FIP != "unknown")){
> $IP = $FIP;
>}

Warning: Såfremt, man også planlægger at bruge det af loghensyn, bør
man _altid_ gemme REMOTE_ADDR sammen med HTTP_X_FORWARDED_FOR.

>$IP = explode(",", $IP);
>$IP = $IP[0];

Kan evt. skrives som:

list($IP) = explode(",", $IP);


--
- Pede
Professionel nørd

Jonas Delfs (29-05-2001)
Kommentar
Fra : Jonas Delfs


Dato : 29-05-01 19:05

"Peter Brodersen" <professionel@nerd.dk> skrev i en meddelelse
news:gpk7htg4hvtf141c23vr9oogkmc2p19fbi@news.worldonline.dk...
> >$FIP = $GLOBALS['HTTP_X_FORWARDED_FOR'];
> >if (($FIP) && ($FIP != "unknown")){
> > $IP = $FIP;
> >}
>
> Warning: Såfremt, man også planlægger at bruge det af loghensyn, bør
> man _altid_ gemme REMOTE_ADDR sammen med HTTP_X_FORWARDED_FOR.

Javel :)

> >$IP = explode(",", $IP);
> >$IP = $IP[0];
>
> Kan evt. skrives som:
>
> list($IP) = explode(",", $IP);

I know - det var bare noget jeg fandt frem fra gemmerne :)

--
Mvh. Jonas Delfs
http://delfs.dk

"Kun en tåbe rydder op. Et geni behersker kaos"



Søg
Reklame
Statistik
Spørgsmål : 177523
Tips : 31968
Nyheder : 719565
Indlæg : 6408674
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste