2013-03-03 109 views
4

我正在创建一个脚本,并假设我有一个用户/密码进入,一旦输入,另一个页面将被重定向,并在该页面中显示线说,你一直在这里住了xxx秒。如何使用time()来计算您登录的秒数

我使用$ _SESSION的时刻,但我不知道如何设置这样的时间(),就开始计数,登录后。

这是我的index.php脚本

if((isset($_GET["user"])) || (isset($_GET["pass"]))) 
{ 
    if(($_GET["user"] == "a") && ($_GET["pass"] == "a")) 
    { 
     session_start(); 
    $_SESSION["auth"] = 1; 
    $_SESSION["username"] = $_GET["user"]; 
    $_SESSION["loginTime"] = time(); 
    $_SESSION["timeLogged"] = time() - $_SESSION["loginTime"]; 


    header("Location: 1.php"); 
} 
else 
{ 
    echo "Incorrect login data"; 
} 
} 

这是我1.PHP脚本

session_start(); 
if(!(isset($_SESSION["username"]))) 
{ 
    header("location: index.php"); 
} 
else 
{ 
    echo "Welcome " . $_SESSION["username"] . "<br/>"; 
    echo "You have been logged in for " . $_SESSION["timeLogged"] . " seconds."; 
} 
+1

只需在URL中传递时间,或者如果它是POST,则在发布的数据中传递时间。 – 2013-03-03 08:02:19

+0

成功登录后,您仍然需要在会话内保存开始时间。之后稍后将每个页面请求当前时间,并计算与保存的开始时间的差值。你也可以用ajax来获得客户端的“计数时钟”。 – arkascha 2013-03-03 08:04:52

回答

2

使用$_SESSION(如你所提到的)

1 - 保存当前时间(或任何时候为此事)在一个会话(饼干)

$_SESSION['startTime'] = time(); 

页2 - 减去当前时刻,我们经过的时间(指2页被访问的时间)在Cookie(第1页上创建)

if (is_int($_SESSION['startTime'])){ // if the cookie exists: 
    $difference = time() - $_SESSION['startTime']; 
} else { // if the cookie does not exist: 
    echo "You have been here some time in the future"; 
} 

反正......类似的东西可能工作


编辑 - 与您提供的代码:

$_SESSION["timeLogged"] = time() - $_SESSION["loginTime"];移动到您的1.php脚本中。你需要一旦你到了第二页 :)

你有什么计算差值

$_SESSION["loginTime"] = time(); 
$_SESSION["timeLogged"] = time() - $_SESSION["loginTime"]; 

最后一行是=当前时间 - (变量也=当前时间)= 0

+0

怪异的....我做了这样的事情,即使确切的,但秒去0 ....我编辑我的帖子,并把脚本我有 – Tsuna 2013-03-03 08:07:18

+0

@ user2128414,亚这是一个好主意,把特定的代码,它可以帮助你更轻松! – 2013-03-03 08:09:28

+1

啊哈!谢谢!!!!高超!!! – Tsuna 2013-03-03 08:15:15