我的大学工作人员要求我这样做,所以请帮助我解决这个问题!我有一个带文本框的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,
在名称后面使用逗号作为标识符,如何在覆盖之前显示上一个时间戳?
答案 0 :(得分:0)
变化:
if(preg_match("/$name/", $myfile))
{
包含$ matches并更改regexp,然后使用$ matches array:
if(preg_match("/$name\,(.*),/", $myfile, $matches))
{
echo 'Previous Login: ' . $matches[1];
提示:使用数据库,确保$ name是唯一的......