20. september 2004 - 20:53
Der er
29 kommentarer og 1 løsning
Vise timer, minutter, sekunder
Når en bruger logger på min chat sætter jeg time(); igang og opdater den i databasen hele tiden. Hvordan gør jeg sådan når man logger ud så stopper time(); + den indsættes i databasen? Og bagefter skal den kører videre der fra, hvor den stoppede sidst. Og hvordan viser man så Timer - Minutter - Sekunder?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
20. september 2004 - 21:16
#1
Antallet af sekunder får du ved at gemme time() når man logger ind: $log_ind_tid = time(); Når man så logger ud: $sekunder = time() - $log_ind_tid; Timer, min og sek kan så fås med: $tim = floor($sekunder/3600); $min = ($sekunder/60)%60; $sek = $sekunder%60;
20. september 2004 - 21:25
#2
Altså i min logout det det sådan her ud: <? if(isset($_POST[brugernavn])) { mysql_query("UPDATE brugere SET felt='0', timeout = time()-$time() WHERE felt='$_GET[felt]'") or die(mysql_error()); echo "$_GET[brugernavn]"; } ?> Hvordan laver jeg det?
20. september 2004 - 21:50
#3
den udskriver: Onlinetid: 304364 - 1 - 10
20. september 2004 - 21:50
#4
$sekunder = $row[timeout]; $tim = floor($sekunder/3600); $min = ($sekunder/60)%60; $sek = $sekunder%60; sådan ser det ud.
20. september 2004 - 21:56
#5
hallo?
20. september 2004 - 22:07
#6
Du skal ikke bruge parenteser efter en variabel: timeout = time()-$time() skal være: timeout = time()-$time og $time skal her være login tidspunktet.
20. september 2004 - 22:10
#7
mysql_query("UPDATE brugere SET felt='0',timeout = time()-$time WHERE felt='$_GET[felt]'") or die(mysql_error()); ?
20. september 2004 - 22:14
#8
Hvorfor laver du ikke 2 felter, login_tid og logud_tid? Så kan du jo bare trække de to fra hinanden.
20. september 2004 - 22:17
#9
Den udskiver bare de største tal, med 20302302 osv. :( Kan jeg ikke hitte ud af tror jeg!
20. september 2004 - 22:19
#10
(1. Ok hør, når den skal tælle time(); ved en php fil hvad skriver jeg så? (2. Og hvad skal jeg skrive når man skal logge ud? (3. Og hvad skal jeg skrive når den skal udskrives?
20. september 2004 - 22:26
#11
Du gemmer tidspunktet ved login: login_tid = time() ved logout (eller undervejs) henter du login_tid og finder antal sekunder med: $sekunder = time() - $row['login_tid']; Ved logout opdaterer du et felt i tabellen med total_tid: set total_tid = total_tid + $sekunder Så kan du vise tim, min og sek som jeg viste dig tidligere.
20. september 2004 - 22:32
#12
Akltså når man er på chatten laver jeg: $tid = time(); også når man er på vej til at loggeud: $sekunder = time() - $row['tid']; og ved mysql_query = set timer = tid + $sekunder
20. september 2004 - 22:34
#13
mysql_query = set timer = tid + $sekunder til: mysql_query(UPDATE chatbrugere set timer = '$tid+$sekunder'");
20. september 2004 - 22:35
#14
foran UPDATE ' " ' :)
20. september 2004 - 22:37
#15
Nok nærmere: mysql_query("UPDATE chatbrugere set timer = timer+$sekunder"); og felterne skal være af typen: INT
20. september 2004 - 22:38
#16
Se dette eksempel: <? $login = 1095705680; // 20-09-2004 20:41:20 $s = time() - $login; $tim = floor($s/3600); $min = ($s/60)%60; $sek = $s%60; echo 'Log ind: ' . date('d-m-Y H:i:s', $login) . "<br />"; echo 'Log out: ' . date('d-m-Y H:i:s') . "<br /><br />"; echo "$tim time(r), $min minut(ter), $sek sekund(er)"; ?>
20. september 2004 - 22:46
#17
Forstår ikke en meter, er virkelig ked af det. kan du ikke skrive fra <? til ?> og i hvilken fil den skal være i feks, index filen (her skal den tæller fra) <?php echo "bla, bla bla"; ?> se_profil.php (her vises timerne osv) <?php echo "bla bla bla"; ?> logud.php(Her logger man ud) <?php echo "bla bla bla"; ?>
20. september 2004 - 22:58
#18
Det er nu meget enkelt. Du skal bruge 3 felter af typen INT i din tabel: login_tid, logout_tid og total_tid. Ved login sætter du: login_tid = time() Ved logout sætter du: logout_tid = time() og: total_tid = total_tid + time() - login_tid Så kan du til hver en tid finde antal sekunder med: $sekunder = time() - $row['login_tid']; og det totale antal sekunder ligger i: $alle_sekunder = $row['total_tid']; Når du har et antal sekunder, kan du bruge mit eksempel til at udregne tim, min og sek. Jeg har desværre ikke mere tid nu, så du må selv lave detaljerne ;O)
20. september 2004 - 23:30
#19
Kan ikke finde ud af sorry, venter tilimorgen hvor måske nogle andre kan, så får du nogel point også.
20. september 2004 - 23:42
#20
Ok, jeg lavede lige et færdigt eksempel på falderebet. Tabellen 'chatbrugere' skal bruge 3 felter af typen INT: 'login', 'logout' og 'total'. <? session_start(); require 'db.php'; // Forbindelse til databasen $bruger = 'detox'; // Brugernavn function sek2tid($s) { $tim = floor($s/3600); $min = ($s/60)%60; $sek = $s%60; return "$tim time(r), $min minut(ter), $sek sekund(er)"; } if (isset($_SESSION['login'])) { unset($_SESSION['login']); mysql_query("update chatbrugere set logout=".time().", total=total+".time()."-login where bruger='$bruger'"); $res = mysql_query("select * from chatbrugere where bruger='$bruger'"); $row = mysql_fetch_assoc($res); echo "Logged out<br /><br />"; echo 'Log ind: ' . date('d-m-Y H:i:s', $row['login']) . "<br />"; echo 'Log out: ' . date('d-m-Y H:i:s') . "<br /><br />"; echo "Tid på: ".sek2tid($row['logout']-$row['login'])."<br />"; echo "Total: ".sek2tid($row['total']); } else { $_SESSION['login'] = 1; mysql_query("update chatbrugere set login=".time()." where bruger='$bruger'"); echo "Logged in<br /><br />"; echo 'Log ind: ' . date('d-m-Y H:i:s') . "<br />"; } ?>
20. september 2004 - 23:43
#21
Så håber jeg du kan rette din egen kode til ud fra det :O)
20. september 2004 - 23:45
#22
PS: Den 'logger på' ved load og 'logger af' ved reload.
21. september 2004 - 00:38
#23
Her er min LOGIN.php: <? session_start(); include "db.php"; ?> <html> <head> <title>Hotel-net.dk</title> <meta name="generator" content="Namo WebEditor v6.0(Trial)"> </head> <body background="bg_sider.bmp"> <font size="2" face="Verdana"> <? if(isset($_POST[brugernavn])) { $sql = mysql_query("SELECT * FROM chatbrugere WHERE brugernavn='$_POST[brugernavn]' AND kode='$_POST[kode]'") or die(mysql_error()); $num = mysql_num_rows($sql); if($num == 0) { echo "<font color=red>*</font> Forkerte dataer."; } else { ?> Hej <?php echo "$_POST[brugernavn]"; ?> velkommen til Hotel-net. Du har du disse funktioner:<br><a href="java script:void(window.open('chat/index_chat.php','_blank','width=675,height=348,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no'))">Log på chatten</a> <? $random = rand(0,36); mysql_query("UPDATE chatbrugere SET online='1', felt='$random' WHERE brugernavn='$_POST[brugernavn]'") or die(mysql_error()); $_SESSION[brugernavn] = $_POST[brugernavn]; exit; } } ?> <form action="login.php" method="POST"> <font size="1" face="Verdana"> Brugernavn:<br> <input type="text" name="brugernavn" style="border: 1px #000000 solid; font-size: 9px; font-family: Verdana;"> <br><br> Adgangskode:<br> <input type="password" name="kode" style="border: 1px #000000 solid; font-size: 9px; font-family: Verdana;"><br> <input type="submit" value="Login!" style="width: 114px; border: 1px #000000 solid; font-size: 9px; font-family: Verdana; background-color: #FFFFFF;"> </form>
21. september 2004 - 00:39
#24
Den skal ikke skrive hvor mange timer man har dér! Kun i se_profil.php som er her: <?php session_start(); include("db.php"); if(isset($_SESSION[brugernavn])) { ?> <html> <head> <title>Hotel-net.dk</title> </head> <font face=Verdana size=1 color=black> <body bgcolor="D4E6FA"> <?php include("db.php"); $query = mysql_query("SELECT * FROM chatbrugere WHERE brugernavn='$_GET[brugernavn]'") or die(mysql_error()); $row = mysql_fetch_array($query); $sekunder = $row[timeout]; $tim = floor($sekunder/3600); $min = ($sekunder/60)%60; $sek = $sekunder%60; echo "<h2><b>$row[brugernavn]</b></h2>"; ?> <table width="163" cellpadding="0" cellspacing="0"> <tr> <td width="163" bgcolor="EEEEEE"><b><font size="1" face="Verdana">IRL Navn:</font></b></td> </tr> <tr> <td width="163" height="23"><font size="1" face="Verdana"><?php echo htmlentities($row['irlnavn']); ?></font></td> </tr> <tr> <td width="163" bgcolor="EEEEEE"><b><font size="1" face="Verdana">Alder:</font></b></td> </tr> <tr> <td width="163" height="23"><font size="1" face="Verdana"><?php echo htmlentities($row['alder']); ?></font></td> </tr> <tr> <td width="163" bgcolor="EEEEEE"><b><font size="1" face="Verdana">MSN:</font></b></td> </tr> <tr> <td width="163" height="23"><font size="1" face="Verdana"><?php echo htmlentities($row['msn']); ?></font></td> </tr> <tr> <td width="163" bgcolor="EEEEEE"><b><font size="1" face="Verdana">Onlinetid:</font></b></td> </tr> <tr> <td width="163" height="23"><font size="1" face="Verdana"><i><?php echo "$tim timer, $min min. $sek sekunder."; ?></i></font></td> </tr> </table> <table width="163" cellpadding="0" cellspacing="0"> <tr> <td width="163" bgcolor="EEEEEE"><b><font size="1" face="Verdana">Fritekst:</font></b></td> </tr> <tr> <td width="163"><font size="1" face="Verdana"><i><?php echo htmlentities($row['fritekst']); ?> </i></font></td> </tr> </table> <p><?php } else { echo "Du er ikke logget ind."; } ?></p>
21. september 2004 - 00:40
#25
Og logout.php: <? session_start(); include "db.php"; ?> <? if(isset($_POST[brugernavn])) { mysql_query("UPDATE brugere SET felt='0',timeout = time()-$time WHERE felt='$_GET[felt]'") or die(mysql_error()); echo "$_GET[brugernavn]"; } ?> Du er nu logget ud.
21. september 2004 - 00:40
#26
Håber du vil sætte det ind i alle de koder, så kan du få 150 point.
21. september 2004 - 15:56
#27
Please ;)
22. september 2004 - 07:43
#28
Øv bøv, en der kan?
22. september 2004 - 18:04
#29
Ikke nogle?? :(
26. september 2004 - 23:26
#30
lukker
Vi tilbyder markedets bedste kurser inden for webudvikling