2013-03-03 110 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