用户登录验证使用php中的记录日期

时间:2016-02-17 06:58:42

标签: javascript php mysql session login

我正在使用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);

如何验证当前日期和用户的上次登录日期。

3 个答案:

答案 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)

有很多方法可以实现它。

  1. 我假设您在'TRACE'表中保存'datetime'或'timestamp'。只是存储DATE不会很好
  2. 在PHP中 - 日期(“Y-M-d”,strtotime(“now”));将以YYYY-MM-DD格式为您提供当前日期
  3. 在MySQL中 - DATE('datetime_columnname') - 将以YYYY-MM-DD格式给你DATE。现在,您可以通过执行查询并与PHP进行比较来进行比较
  4. 最好的方法是使用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

  5. 您甚至可以参考以下部分链接:

    希望这对你有所帮助。