![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 16.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam Wszystkich,
Mam prosty skrypcik w JS i chciał bym do niego dodać obsługę ciasteczek tak by zapamiętało jedną zmienną i można ją było później wykorzystać. Skrypt ma za zadanie zliczyć czas spędzony na stronie i wartość czasu pomnożyć o odpowiednią stałą, problem w tym że chciał bym aby licznik nie resetował się za każdym razem jak użytkownik przejdzie na inną podstronę. Myślalem tutaj o 2 rozwiązaniach ciasteczka i sesja. Jednak nijak nie mogę tego zaimplementować i już połowę włosów z głowy wyrwałem. CODE <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script LANGUAGE="JavaScript"> <!-- Begin startday = new Date(); clockStart = startday.getTime(); function initStopwatch() { var myTime = new Date(); return((myTime.getTime() - clockStart)/1000); } function getSecs() { var tSecs = Math.round(initStopwatch()); var iSecs = tSecs % 60; var iMins = Math.round((tSecs-30)/60); var sSecs ="" + ((iSecs > 9) ? iSecs : "0" + iSecs); var sMins ="" + ((iMins > 9) ? iMins : "0" + iMins); var a = (iMins*60 ); var b = a + (iSecs); var d = b * 0.002536783; document.forms[0].timespent.value = d; window.setTimeout('getSecs()',1000); } </script> </head> <BODY onLoad="window.setTimeout('getSecs()',1)"> <CENTER> <FORM> <FONT SIZE="2" FACE="Arial">Gmina zarobiła: </FONT><input size=10 name=timespent> </FORM> </CENTER> <!-- End of Time Spent JavaScript --> </body> </html> Jeśli ktoś by mi podpowiedział jak to zrobić lub po prostu wstawił ciasteczka za mnie to był bym wdzięczny. Szukałem czegoś takiego w internecie i próbowałem zaimplementować wiele różnych rozwiązań ale zawsze gdzieś pozostawiam babola i jest kicha. pozdrawiam Łukasz Ten post edytował gmorekk 16.08.2011, 11:00:36 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W sieci jest cała masa przykładów wraz z gotowymi funkcjami. Wbrew pozorom nie jest to takie trudne. Jeśli jednak masz z tym kłopoty lub brak Ci inicjatywy, to umieść ogłoszenie w dziale Poszukuję. Nikt niczego za darmo Tobie nie zrobi, a Ty nawet nie pokazałeś, w jaki sposób próbowałeś rozwiązać swój problem.
Ten post edytował mortus 16.08.2011, 11:13:42 |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Pokaż, jak pracujesz nad tym skryptem, inaczej przenoszę na Giełdę Ofert.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 16.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
jedna wersja
CODE <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script LANGUAGE="JavaScript"> <!-- Begin startday = new Date(); clockStart = startday.getTime(); function initStopwatch() { var myTime = new Date(); return((myTime.getTime() - clockStart)/1000); } function getSecs() { var plus = ReadCookie(bylo); if(plus.lenght == 0) {e = 0;} else {plus = ReadCookie(bylo);} var tSecs = Math.round(initStopwatch()); var iSecs = tSecs % 60; var iMins = Math.round((tSecs-30)/60); var sSecs ="" + ((iSecs > 9) ? iSecs : "0" + iSecs); var sMins ="" + ((iMins > 9) ? iMins : "0" + iMins); var a = (iMins*60 ); var b = a + (iSecs); var d = plus + (b * 0.002536783); SetCookie("bylo", d, 3000); document.forms[0].timespent.value = d; window.setTimeout('getSecs()',1000); } function SetCookie() { if(arguments.length < 2) { return; } var n = arguments[0]; var v = arguments[1]; var d = 0; if(arguments.length > 2) { d = parseInt(arguments[2]); } var exp = ''; if(d > 0) { var now = new Date(); then = now.getTime() + (d * 24 * 60 * 60 * 1000); now.setTime(then); exp = '; expires=' + now.toGMTString(); } document.cookie = n + "=" + escape(String(v)) + '; path=/' + exp; } // function SetCookie() function ReadCookie(n) { var cookiecontent = new String(); if(document.cookie.length > 0) { var cookiename = n+ '='; var cookiebegin = document.cookie.indexOf(cookiename); var cookieend = 0; if(cookiebegin > -1) { cookiebegin += cookiename.length; cookieend = document.cookie.indexOf(";",cookiebegin); if(cookieend < cookiebegin) { cookieend = document.cookie.length; } cookiecontent = document.cookie.substring(cookiebegin,cookieend); } } return unescape(cookiecontent); } // function ReadCookie() </script> </head> <BODY onLoad="window.setTimeout('getSecs()',1)"> <script> document.write(plus); </script> <CENTER> <FORM> <FONT SIZE="2" FACE="Arial">Gmina zarobiła: </FONT><input size=10 name=timespent> </FORM> </CENTER> <!-- End of Time Spent JavaScript --> </body> </html> i druga ale jej nie rozwijałem nawet: CODE <?php
session_start(); // get session variables $count = $_SESSION['count']; $start = $_SESSION['start']; if (!isset($count)) { // initialise session variables $count = 0; $start = time(); // register session variables $_SESSION['count'] = $count; $_SESSION['start'] = $start; } else { // update and save session variables $count++; $_SESSION['count'] = $count; } $sessionId = session_id(); ?> <html> <head> <script language="JavaScript"> <!-- start = new Date(); clockStart = start.getTime(); function startTime() { var time = new Date(); return((time.getTime() - clockStart)/1000); } function countUp() { var CalSec = Math.round(startTime()); var CalSecFin = CalSec % 60; var CalMin = Math.round((CalSec-30)/60); var CalHours = Math.round((CalMin-30)/60); var FinSec ="" + ((CalSecFin > 9) ? CalSecFin : "0" + CalSecFin); var CalMinFin ="" + ((CalMin > 9) ? CalMin : "0" + CalMin); var CalHourFin ="" + ((CalHours > 9) ? CalHours : "0" + CalHours); //heure=CalHourFin+":"+CalMinFin+":"+FinSec; //document.getElementById('mess').innerHTML=heure; //use input document.forms[0].timespent.value = CalHourFin+":"+CalMinFin+":"+FinSec; //document.getElementById('mess').innerHTML=heure; window.setTimeout('countUp()',1000); } //--> </script> </head> <body onLoad="window.setTimeout('countUp()',1)"> <?php $duration = time() - $start; ?> Session Time Duration: <?php echo date("H:i:s", $duration); ?> <form> You have been on <?php echo $_SERVER['SERVER_NAME'];?> for <input size=5 style="border:0" name=timespent> </form> </body> </html> |
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
I co nie robi?
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 16.08.2011 Ostrzeżenie: (0%) ![]() ![]() |
Właśnie w tym problem ze w inpucie nic sie nie wyswietla i już załamalem rece nie wiem czemu ale nie chce dzialac
|
|
|
![]()
Post
#7
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Jest coś w konsoli błędów?
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
W funkcji getSecs() zamiast ReadCookie(bylo) powinno być ReadCookie("bylo") (linie 1 i 3). A skrypt jest Twój, czy pobrany skądś z sieci?
EDIT Zainstaluj sobie Firebug-a dla Firefox-a - naprawdę ułatwia pracę. Ten post edytował mortus 17.08.2011, 13:10:57 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 18:33 |