显示以前从txt文件登录的时间戳

时间:2014-10-05 13:56:30

标签: php html

我的大学工作人员要求我这样做,所以请帮助我解决这个问题!我有一个带文本框的php文件,应该在其中输入登录ID并按下登录按钮。按下此按钮后,登录ID和时间戳将存储在txt文件中。下次使用相同的登录ID时,将覆盖时间戳。我成功完成了这部分。现在,我想在覆盖它之前显示时间戳。这与whatsapp最后看到的类似。我该如何展示它?

这是我的代码:

<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,

在名称后面使用逗号作为标识符,如何在覆盖之前显示上一个时间戳?

1 个答案:

答案 0 :(得分:0)

变化:

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

包含$ matches并更改regexp,然后使用$ matches array:

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

示例:http://ideone.com/1diNNd

提示:使用数据库,确保$ name是唯一的......