Avatar billede leol Nybegynder
08. januar 2006 - 21:29 Der er 28 kommentarer og
1 løsning

Vis hvad for nogle bruger der er online

Hej nogle der kender en kode der viser hvem der er online på ens side ( Brugernavne )
Avatar billede webstuff Nybegynder
08. januar 2006 - 21:33 #1
Har du et brugersystem?
Altså hvor man kan logge ind osv.?
Avatar billede leol Nybegynder
08. januar 2006 - 21:41 #2
Selvf
Avatar billede leol Nybegynder
08. januar 2006 - 21:42 #3
Ja*
Avatar billede webstuff Nybegynder
08. januar 2006 - 21:49 #4
Okay.. Så skal du lave et felt i databasen som hedder:
'loggetind' og det skal være i typen: 'DATE'
og en felt der hedder 'onoff' af typen 'VARCHAR(5)'

når brugeren så logger ind, sætter du 'onoff' = 'on'
og du sætter felter 'loggetind' til 'NOW()'

og i toppen af hver side sætter du det her ind

<?
mysql_query("UPDATE brugere SET onoff = 'on', loggetind = NOW() WHERE brugernavn = '$_SESSION[bruger]'");
mysql_query("UPDATE brugere SET onoff = 'off' WHERE DATE_ADD(loggetind,INTERVAL 10 MINUTE) < NOW()");
?>

og på din side hvor du vil vise online brugere kan du gøre sådan her:

<?
mysql_connect(...
mysql_selec_db(...

$hent = mysql_query("SELECT * FROM brugere WHERE onoff = 'on'") or die(mysql_error());
while($vis = mysql_fetch_assoc($hent)){
echo "$vis[brugernavn]<br>";
}
Avatar billede webstuff Nybegynder
08. januar 2006 - 21:49 #5
Meget af koden er taget direkte fra mit eget script, så det burde virke :-)
Avatar billede inctor Nybegynder
08. januar 2006 - 21:50 #6
lille eksempel:

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 1 WHERE brugernavn='$brugernavn'");
?>

når de logget ud:

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 0 WHERE brugernavn='$brugernavn'");
?>


hvis du forstår ..
Avatar billede webstuff Nybegynder
08. januar 2006 - 21:51 #7
inctor:
problemet kommer hvis brugeren ikke logger ud, men bare lukker vinduet.. hvilket de fleste i øvrigt gør :-)
Avatar billede inctor Nybegynder
08. januar 2006 - 21:51 #8
og selvf den her til at vise hvem:
<?
include("connect.php");
$query = mysql_query("SELECT * FROM brugere WHERE online = '1'") or die(mysql_error());
while($hvem = mysql_fetch_assoc($query)){
echo "$hvem[brugernavn]<br>";
}
?>
Avatar billede inctor Nybegynder
08. januar 2006 - 21:53 #9
<body onunload="logud.php">

svære er den ikke .. :D har den selv på min side .. men hagen ved min er hvis man har popup blokker .. :D det står der som oplysming på min side man skal slå fra .. hvis man vil kunne bruge siden rigtigt ...
Avatar billede webstuff Nybegynder
08. januar 2006 - 21:55 #10
Ja sådan kan det selvfølgelig også gøres?

Men er det ikke javascript? hvad hvis man ikke kan køre javascript?
Avatar billede inctor Nybegynder
08. januar 2006 - 21:56 #11
logget ind:

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 1 WHERE brugernavn='$brugernavn'");
?>


sæt denne ind på din side hvor som helst i body tagget:
<body onunload="logud.php">

den her i logug.php:

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 0 WHERE brugernavn='$brugernavn'");
?>

hagen er jo Popup blokker .. men jaa .. den kan ihvertfald bruges ..
Avatar billede inctor Nybegynder
08. januar 2006 - 21:57 #12
det ikke javascript .. den skal bare ind i <body> tagget .. så virker det ..
Avatar billede leol Nybegynder
08. januar 2006 - 21:57 #13
www.nickill.hotserv.dk opret jer en bruger og gå ind i bruger online i menuen der står ikke noget?
Avatar billede leol Nybegynder
08. januar 2006 - 22:00 #14
når brugeren så logger ind, sætter du 'onoff' = 'on'
og du sætter felter 'loggetind' til 'NOW()'

Forstår jeg ikke
Avatar billede inctor Nybegynder
08. januar 2006 - 22:00 #15
prøv at følge min ..

den her skal ind i den fil der kommer efter man er logget ind...

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 1 WHERE brugernavn='$brugernavn'");
?>


sæt denne ind på din side hvor som helst i body tagget:
<body onunload="logud.php">

den her i logug.php:

<?
include("connect.php");

mysql_query("UPDATE tabel SET online = 0 WHERE brugernavn='$brugernavn'");
?>
Avatar billede inctor Nybegynder
08. januar 2006 - 22:01 #16
hva hedder din bruger tabel ?
Avatar billede inctor Nybegynder
08. januar 2006 - 22:01 #17
så fixer jeg den lige .. :D
Avatar billede yezbarh Nybegynder
08. januar 2006 - 22:02 #18
leol.
Lav en skjult iframe med siden testOnline.php.
i testOnline.php laver du:

<script>setTimeout("location.reload(true)",60000);</script>

<?php
session_start();
include("db.php");
$tid    = date('U');
$ip    = $_SERVER["REMOTE_ADDR"];
$bruger = $_SESSION['navn'];

$result = mysql_query("SELECT * FROM online WHERE ip like '$ip'");
if (mysql_num_rows($result) == 0)  {
    mysql_query("INSERT INTO online (ip,date,bruger) values ('$ip',$tid,'$bruger')");
} else {
    mysql_query("UPDATE online SET tid=$tid, bruger='$bruger' WHERE ip like '$ip'");
}

mysql_query("DELETE FROM online where tid < $tid - 2");
?>

-- fx.

kig lidt på det!
Avatar billede leol Nybegynder
08. januar 2006 - 22:02 #19
tabel hedder bruger
Avatar billede inctor Nybegynder
08. januar 2006 - 22:03 #20
hva hedder din række ? der hvor brugernavn står ?
Avatar billede leol Nybegynder
08. januar 2006 - 22:04 #21
3 ?
Avatar billede leol Nybegynder
08. januar 2006 - 22:04 #22
Svare først i morgen.....
Avatar billede inctor Nybegynder
08. januar 2006 - 22:05 #23
online.php :
<?
include("connect.php");
mysql_query("UPDATE online SET online = 1 WHERE brugernavn='$brugernavn'");
?>

logud.php :

<?
include("connect.php");
mysql_query("UPDATE online SET online = 0 WHERE brugernavn='$brugernavn'");
?>


brugeronline.php :
<?
include("connect.php");
$query = mysql_query("SELECT * FROM online WHERE online = '1'") or die(mysql_error());
while($hvem = mysql_fetch_assoc($query)){
echo "$hvem[brugernavn]<br>";
}
?>

forstår du det eksempel ?
Avatar billede inctor Nybegynder
08. januar 2006 - 22:26 #24
Prøve den her:


-------------------------------------------
online.php, skriv include("online.php");
-------------------------------------------
<?
//http://exp.dk/spm/677987
//Made By Inctor Aka Bow Know Aka Mads

@mysql_connect ("localhost" , "navn" , "kode");
@mysql_select_db ("Database");

$select_info = mysql_query("SELECT * FROM bruger WHERE(id='$id')");
$row_info = mysql_fetch_array($select_info);

$select_online = mysql_query("SELECT * FROM online WHERE navn='$row_info[3]'") or die(mysql_error());
$row_onl = mysql_fetch_array($select_online);

if($row_onl[navn] == $row_info[3]) {
mysql_query("UPDATE online SET online = 1 WHERE(navn='$row_info[3]')");
} else {
mysql_query("insert into online(navn)values('$row_info[3]')");
mysql_query("UPDATE online SET online = 1 WHERE(navn='$row_info[3]')");
}
?>

------------------------------------------
brugereonline.php her under:
------------------------------------------
<?
@mysql_connect ("localhost" , "navn" , "kode");
@mysql_select_db ("Database");

$query = mysql_query("SELECT * FROM online WHERE online = '1'") or die(mysql_error());
while($hvem = mysql_fetch_assoc($query)){
echo "$hvem[navn]<br>";
}
else {
echo "Der er ingen Online "; }
?>

--------------------------------------------
Logout.php her under:
--------------------------------------------
<?
@mysql_connect ("localhost" , "navn" , "kode");
@mysql_select_db ("Database");

mysql_query("UPDATE online SET online = 0 WHERE(navn='$row_info[3]')");
?>


CREATE TABLE online (
  navn varchar(20) NOT NULL,
  online tinyint(2) NOT NULL default '0',
) TYPE=MyISAM;


That Should Be It !
Have A Nice Day, Allrighty Then, Bye Bye Then ..
(sorry, for meget Ace Ventura) .. :D


sammenlagt brugt tid: lidt over en halv time .. :D
Avatar billede inctor Nybegynder
08. januar 2006 - 22:30 #25
forresten, den her lille kode skal ind i dit body tag:

<body onunload="logout.php">

nu skulle det meget gerne virke .. sig til hvis der er nogen fejl .. så hjælper jeg gerne hvis du vælger at bruge min kode .. men det burde virke .. håber ikk det er alt for uoverskueligt .. :S jeg skrev:
WHERE(id='$id')");
fordi jeg regnede med at alle havde et unikt id .. :) men kan godt laves om hvis ikke ..
Avatar billede leol Nybegynder
09. januar 2006 - 14:23 #26
Avatar billede leol Nybegynder
09. januar 2006 - 14:23 #27
Avatar billede inctor Nybegynder
09. januar 2006 - 14:35 #28
Prøv at følge min artikel:

http://exp.dk/artikler/885

der var os en fejl i koden, den opdagede jeg først da jeg skrev artiklen ..
Avatar billede leol Nybegynder
05. april 2006 - 22:04 #29
Ingen svar
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