setcookie(AboutVisit, pageVisisted);
将不会捕获pageVisited
的值,因为这是一个JavaScript变量。 JavaScript在用户的浏览器中运行,而PHP没有意识到它。 PHP只知道它的PHP块有什么。换句话说,它认为你这样的代码:
Arbitrary text
<?php
setcookie(AboutVisit, pageVisisted); // What is pageVisited?!
session_start();
?>
Arbitrary text
真的,只要有人跟踪多久,是在你的页面的话,你并不需要涉及PHP,除非你需要使用的信息服务器。相反,您的JavaScript可以负责维护您的Cookie。不幸的是,JavaScript本身有一个可怕的和反直观的API来处理cookie。通过@vascowhite链接到的文章有一组很好的帮助JavaScript函数,您可以使用它来简化事情。下面是你的JavaScript可能看起来像增加了一些辅助功能:
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
// Read the cookie; if it's not there, start at the current date
var cookieVal = readCookie('AboutVisit');
var pageVisisted = cookieVal ? parseInt(cookieVal) : new Date().milliseconds;
if (!cookieVal) {
createCookie('AboutVisit', pageVisited.toString());
}
setInterval(function() {
var timeOnSite = new Date().milliseconds - pageVisisted;
var secondsTotal = timeOnSite/1000;
var hours = Math.floor(secondsTotal/3600);
var minutes = Math.floor(secondsTotal/60) % 3600;
var seconds = Math.floor(secondsTotal) % 60;
document.getElementById('counter').innerHTML =
hours + ":" + minutes + ":" + seconds;
}, 1000);
你读过这个吗? http://www.quirksmode.org/js/cookies.html – vascowhite
您可能需要使用像这样的会话$ _SESSION ['counter'] = 0;并在有操作时增加。你可以通过简单地将它打印到页面来获得这个会话值,如var counter = <?= $ _SESSION ['counter']?>; – Karthik
更多**特定**并在**详细信息中更详细地解释问题**。从你写的 你只是通过脚本中的PHP代码设置cookie。在JS部分中,您正在计算H,M和S并在页面上显示它们。 – SarthakGupta