我正在使用php创建一个登录页面表格在线考试应用程序。我已经成功创建了一个登录页面。我正在维护一个单独的表来跟踪用户登录的详细信息,例如用户名,登录日期等。我需要的是,如果用户在一天内登录该页面两次,则需要将其导向另一个页面,如xxx.php 。是否有可能获取当前日期并使用登录跟踪表详细信息enter code here
验证它。
$today = getdate();
我希望我可以使用以下查询获取最近记录的日期
$qry_trace="
SELECT l_date FROM trace
WHERE u_name='$session_username'
order by l_date desc
";
$result_trace=mysql_query($qry_trace);
如何验证当前日期和用户的上次登录日期。
答案 0 :(得分:0)
仅保存数据库中的上次登录日期。如果用户在同一天再次登录,查询将返回一行,在这种情况下您可以返回页面xxx.php
|用户名| last_login_date |
查询就像
$qry_trace="SELECT * FROM trace WHERE u_name='$session_username' AND last_login_date = "$today";
$result_trace=mysql_query($qry_trace);
if(mysqli_num_rows($result_trace) > 0)
// go to xxx.php
else
// normal login
答案 1 :(得分:0)
您可以使用time()
获取当前timeStamp$current_time = time();
$before_24_hours = $current_time - (60 * 60 * 24);
您的查询将如下所示
$sql = "SELECT count(l_date) FROM trace WHERE u_name='$session_username' AND l_date < "'.$currentTime.'" AND l_date > "'.$before_24_hours.'"";
注意:首先,您需要记录timeStamp而不是存储日期。
答案 2 :(得分:0)
有很多方法可以实现它。
最好的方法是使用MySQL功能本身进行比较,而不是再次与PHP日期比较
SELECT *, DATE(l_date) < DATE(NOW()) AS logged_today FROM trace WHERE u_name='$session_username' ORDER BY l_date DESC LIMIT 1
您甚至可以参考以下部分链接:
希望这对你有所帮助。