Onlinetid + point til chat

Tags:    php

<< < 12 > >>
Hej..!


Jeg har lavet en chat, og er nu nået så langt at jeg kun mangler systemet der tæller hvor lang tid man har været online, og det system der giver point..!


Er der en der kan lave sådan et system?

PS: Point skal man kun have hvert 15. minut, man har været online


Der er 200 point til ham der kan lave det..!


- Velocity

There is no spoons



14 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Okay, det ser ud til at virke..!

Hvad så med den kode der printer Onlinetid ud?

f.x: Du har været online i XX timer og XX minutter.
Du har XX point.


Du kan lave en $current_online_seconds hvis det skal vises realtime i chatten.

$current_online_seconds = time() - $login_time;

Det giver dig så antal sekunder online, så skal du dividere lidt osv., så kan du skrive det f.eks. minutter :-)

$current_online_minutes = $current_online_seconds / 60;

Hvad angår at skrive timer, minutter, sekunder osv., så skal der et lidt pebret stykke kode til, men det burde kunne gøres således:

$tell_minutes = floor($current_online_minutes);
$tell_seconds = $current_online_seconds % 60;
$tell_time = "Onlinetid: " . $tell_minutes . " minutter og " . $tell_seconds . " sekunder.";

Så får du antal minutter (decimaler væk og rundet ned), samt resterende antal sekunder ved division med 60.
Samme metode kan du så anvende til timer, døgn, uger, måneder, år,... you get the picture :-)

Jeg var endda så tør for ting at give mig til, at jeg testede det selv, her er et virkende resultat, prøv evt. at justere på "$num_secs" (som jo er den værdi der bliver sendt fra time() funktionen minus $login_time:
Fold kodeboks ind/udKode 

Ovenstående gav mig flg. output:
"136 sekunder bliver til 2 minutter og 16 sekunder."
OG... DET PASSER JO! :-)
-
Mvh.
Christian Schultz Knudsen

[Redigeret d. 15/11-04 11:12:17 af Christian Schultz Knudsen]

[Redigeret d. 15/11-04 11:25:36 af Christian Schultz Knudsen]



Hej..!


Jeg har lavet en chat, og er nu nået så langt at jeg kun mangler systemet der tæller hvor lang tid man har været online, og det system der giver point..!


Er der en der kan lave sådan et system?

PS: Point skal man kun have hvert 15. minut, man har været online


Der er 200 point til ham der kan lave det..!


- Velocity

There is no spoons


Kan godt hjælpe dig.. prøver lige at scripte noed nu, som du måske kan bruge

---------------------
Daniel Truelsen
http://truelsenweb.TK



Hej..!


Jeg har lavet en chat, og er nu nået så langt at jeg kun mangler systemet der tæller hvor lang tid man har været online, og det system der giver point..!


Er der en der kan lave sådan et system?

PS: Point skal man kun have hvert 15. minut, man har været online


Der er 200 point til ham der kan lave det..!


- Velocity

There is no spoons

Sæt en time() når personen logger ind, og endnu en når personen logger ud.
Så har du $login_time og $logout_time.
Så trækker du $login_time fra $logout_time, så har du $additional_online_seconds og plusser brugerens nuværende tid (som du har i en database) med dette, så har du $online_seconds.
Dividér dette med 60, så har du $online_minutes.
Dividér $online_minutes med 15, så har $point.

Altså:

Ved login:
$login_time = time();

Ved logout:
$logout_time = time();
$additional_online_seconds = $logout_time - $login_time;
mysql_query("UPDATE `chatbrugere` SET `onlinetid`=`onlinetid`+$additional_online_seconds WHERE `brugernavn`='$brugernavn'");

Jeg tror du fanger idéen.
Brugerens point kan så regnes ud enten ved den totale tid, eller smides ind ved hvert logout.
I sidste tilfælde kan det gøres ved simpelthen at køre en:

$additional_points = ($additional_online_seconds / 60) / 15;
mysql_query("UPDATE `chatbrugere` SET `brugerpoints`=`brugerpoints`+$additional_points WHERE `brugernavn`='$brugernavn'");

Eftersom det er mandag morgen og det går lidt stærkt, så er der temmelig sandsynligvis syntaksfejl og evt. variabler der er stavet en anelse forskelligt, så kod det for guds skyld selv og brug kun ovenstående som udgangspunkt - håber du forstår idéen.
-
Mvh.
Christian Schultz Knudsen



Okay, det ser ud til at virke..!

Hvad så med den kode der printer Onlinetid ud?

f.x: Du har været online i XX timer og XX minutter.
Du har XX point.



Hehe ja det passer fint til selve chatten..!

Men sådan som min chat fungerer starter man med at skal logge ind..!
Derefter kommer man til en side (loginok.php) hvor man kan se sin profil..!
Hvis man vil ind på chatten vælger man bare i menuen på loginok.php "Chat" og så popper den op i et nyt vindue..!


Det er inde på loginok.php den skal vise den totale onlinetid..!
How is the code? :)

Den kode der viser hvor lang tid man har været online på chatten, viser hvor lang tid man har været på loginok.php hehe...UDEN at have chatten åben

[Redigeret d. 15/11-04 13:35:26 af Peter]



Hehe ja det passer fint til selve chatten..!

Men sådan som min chat fungerer starter man med at skal logge ind..!
Derefter kommer man til en side (loginok.php) hvor man kan se sin profil..!
Hvis man vil ind på chatten vælger man bare i menuen på loginok.php "Chat" og så popper den op i et nyt vindue..!


Det er inde på loginok.php den skal vise den totale onlinetid..!
How is the code? :)

Den kode der viser hvor lang tid man har været online på chatten, viser hvor lang tid man har været på loginok.php hehe...UDEN at have chatten åben

[Redigeret d. 15/11-04 13:35:26 af Peter]

Så skal du jo bare flytte koden?
Jeg går ud fra at du af alle har mest styr på, hvor koden skal placeres.
Den skal naturligvis tælle i vinduet hvor chatten åbner i så - mere kan jeg altså ikke hjælpe dig.
-
Mvh.
Christian Schultz Knudsen



Det jeg tænkte mig, var en kode hvor man på loginok.php kan se hvor lang tid man har været online (onlinetid gemmes i databasen).

Det ENESTE sted man skal kunne se onlinetiden er på loginok.php..!

Altså:
Noget med den gemmer Sessiontime i databasen, og på loginok.php henter den koden ud, og omskriver sessiontime til Minutter og timer

[Redigeret d. 15/11-04 13:41:39 af Peter]



Det jeg tænkte mig, var en kode hvor man på loginok.php kan se hvor lang tid man har været online (onlinetid gemmes i databasen).

Det ENESTE sted man skal kunne se onlinetiden er på loginok.php..!

Altså:
Noget med den gemmer Sessiontime i databasen, og på loginok.php henter den koden ud, og omskriver sessiontime til Minutter og timer

[Redigeret d. 15/11-04 13:41:39 af Peter]

See, du kan jo godt? Så ta' dine idéer og de redskaber du har og udvikl :-)
-
Mvh.
Christian Schultz Knudsen



Hehe :)
Har bare nogle problemer med den kode der omskriver Sessiontime (gemt i databasen) til Timer og minutter...
"Du har været online i XX timer og XX minutter."

Noget du kan hjælpe med? :)



Hehe :)
Har bare nogle problemer med den kode der omskriver Sessiontime (gemt i databasen) til Timer og minutter...
"Du har været online i XX timer og XX minutter."

Noget du kan hjælpe med? :)

Hvis du har det som sekunder kan du bruge metoden jeg beskrev ovenfor. Hvis ikke, ja, hvad har du så?
-
Mvh.
Christian Schultz Knudsen



<< < 12 > >>
t