首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在mysql数据库中存储注销时间?

如何在mysql数据库中存储注销时间?
EN

Stack Overflow用户
提问于 2018-08-12 03:57:40
回答 1查看 1.1K关注 0票数 0

我正在尝试建立一个系统,其中用户可以登录到一个网站?我成功地构建了这个部分。现在我正在尝试保存登录和注销时间,但每次我保存时间时,我只保存登录时间,而不是注销时间?

那么,我需要如何节省注销时间?还有一件事,当我使用本地时间节省时间时&数据库时间与本地时间不同,我如何解决这个问题?

下面是我的server.php代码

代码语言:javascript
复制
<?php 
session_start();

// variable declaration
$username = "";
$email    = "";
$errors = array(); 
$_SESSION['success'] = "";



// connect to database
$db = mysqli_connect('localhost', 'iotaeyjx_login', 'amitsaha1993', 'iotaeyjx_login');

// REGISTER USER
if (isset($_POST['reg_user'])) {
    // receive all input values from the form
    $username = mysqli_real_escape_string($db, $_POST['username']);
    $email = mysqli_real_escape_string($db, $_POST['email']);
    $password_1 = mysqli_real_escape_string($db, $_POST['password_1']);
    $password_2 = mysqli_real_escape_string($db, $_POST['password_2']);

    // form validation: ensure that the form is correctly filled
    if (empty($username)) { array_push($errors, "Username is required"); }
    if (empty($email)) { array_push($errors, "Email is required"); }
    if (empty($password_1)) { array_push($errors, "Password is required"); }

    if ($password_1 != $password_2) {
        array_push($errors, "The two passwords do not match");
    }

    // register user if there are no errors in the form
    if (count($errors) == 0) {
        $password = md5($password_1);//encrypt the password before saving in the database
        $query = "INSERT INTO users (username, email, password) 
                  VALUES('$username', '$email', '$password')";
        mysqli_query($db, $query);

        $_SESSION['username'] = $username;
        $_SESSION['success'] = "You are now logged in";
        header('location: index.php');
    }

}

// ... 

// LOGIN USER
if (isset($_POST['login_user'])) {
    $username = mysqli_real_escape_string($db, $_POST['username']);
    $password = mysqli_real_escape_string($db, $_POST['password']);

    if (empty($username)) {
        array_push($errors, "Username is required");
    }
    if (empty($password)) {
        array_push($errors, "Password is required");
    }

    if (count($errors) == 0) {
        $password = md5($password);
        $query = "SELECT * FROM users WHERE username='$username' AND password='$password'";


        $results = mysqli_query($db, $query);


        if (mysqli_num_rows($results) == 1) {

            $sql_2 = "INSERT INTO login_logs(username) VALUES ('" . $username . "')";
            $results2 = mysqli_query($db, $sql_2);



            $_SESSION['username'] = $username;
            $_SESSION['success'] = "You are now logged in";
            header('location: index.php');
        }else {
            array_push($errors, "Wrong username/password combination");
        }
    }
}

if (isset($_POST['logout_user'])) {


            $sql_3 = "UPDATE login_logs SET logout_time = current_timestamp where username ='$username'";
           $results3 = mysqli_query($db, $sql_3);


           $_SESSION['success'] = "You are now logged out";
           header('location: index.php');

}

?>

下面是我的index.php代码

代码语言:javascript
复制
<?php 



session_start(); 

if (!isset($_SESSION['username'])) {
    $_SESSION['msg'] = "You must log in first";
    header('location: login.php');
}

if (isset($_GET['logout'])) {
    session_destroy();
    unset($_SESSION['username']);
    header("location: login.php");
}

?>

代码语言:javascript
复制
    <!-- notification message -->
    <?php if (isset($_SESSION['success'])) : ?>
        <div class="error success" >
            <h3>
                <?php 
                    echo $_SESSION['success']; 
                    unset($_SESSION['success']);
                ?>
            </h3>
        </div>
    <?php endif ?>

    <!-- logged in user information -->
    <?php  if (isset($_SESSION['username'])) : ?>
        <p>Welcome <strong><?php echo $_SESSION['username']; ?></strong></p>

        <br>
        <p> <a href="index.php?logout='1'" style="color: red;">Are you Ready to go HOME? Click Here!!</a> </p>
    <?php endif ?>


</div>

谢谢你们所有人。

EN

回答 1

Stack Overflow用户

发布于 2018-08-12 04:09:36

解决在数据库中存储登录和注销时间的最佳方法是使用timestamp作为字段(这是一个标准,因为它以格林尼治标准时间为单位)。

使用php now()函数,我们可以插入日期值。

要在PHP中获取其他日期的timestamp

代码语言:javascript
复制
$timestamp = date('Y-m-d G:i:s', mktime(0, 0, 0, 7, 1, 2000));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51803249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档