2014-10-05 20 views
3

我被要求由我的大學工作人員這樣做,所以請幫助我!我有一個帶有文本框的php文件,登錄標識應該被輸入,登錄按鈕被按下。一旦按下此按鈕,登錄ID和時間戳就會存儲在一個txt文件中。下次使用相同的登錄ID時,時間戳將被覆蓋。我已經成功完成了這部分。現在,我想在覆蓋它之前顯示時間戳。這與whatsapp上次看到的類似。我如何顯示它?顯示以前從txt文件登錄的時間戳

這是我的代碼:

<html> 
<head><title>Login Portal</title></head> 
<body><center> 
<h1>TPF EMPLOYEE LOGIN</h1><hr><br><br> 
<?php 
session_start(); 
if(isset($_POST['submit'])) 
    { 
    $myfile = file_get_contents('data.txt'); 
    $_SESSION['name']=$_POST['id']; 
    date_default_timezone_set('Asia/Calcutta'); 
    $date = date('Y-m-d H:i:s'); 
    $txt=$_SESSION['name'].",".$date.",\n"; 
    $name = $_SESSION['name']; 
    if(preg_match("/$name/", $myfile)) 
    { 
     $results = preg_replace("/$name.*\,/", $txt, $myfile); 
     file_put_contents('data.txt', $results); 
    } 
    else 
     { 
      file_put_contents('data.txt', $txt, FILE_APPEND); 
     } 
    } 
    else 
    { 
    echo "<form name='login' method='post'>"; 
    echo "Enter your login id : <input type='text' name='id' id='id' /><br><br>"; 
    echo "<input type='submit' name='submit' value='Login' />"; 
    echo "</form>"; 
    } 
?> 
</center> 
</body> 
</html> 

這是我的txt文件的內容:

a,2014-10-05 19:00:40, 

b,2014-10-05 19:00:31, 

使用逗號的名稱作爲識別我怎麼overwritting之前顯示前一個時間戳之後它?

+0

爲什麼不只是利用mysql表呢? – Ghost 2014-10-05 14:00:17

回答

0

變化:

if(preg_match("/$name/", $myfile)) 
{ 

包括$匹配和改變正則表達式,然後用$工作匹配陣列:

if(preg_match("/$name\,(.*),/", $myfile, $matches)) 
{  
    echo 'Previous Login: ' . $matches[1]; 

實施例:http://ideone.com/1diNNd

提示:使用一個分貝,確保$名稱是唯一的...

+0

使用db我知道很容易做到!這是我的員工分配給我的問題,所以必須按照他們的說法做! – 2014-10-05 16:38:35