会话值显示但未插入mysql表中

时间:2015-04-07 17:09:04

标签: php jquery mysqli

我想做什么: 我正在尝试使用jquery和php登录并尝试在名为logs的mysql表中注册每个登录和注销。

问题: 每次我只登录随机的session_id,login_time和logout_time都会被注册,但是用户名和全名都没有注册。 (注意:我没有为ip_address做任何事情,所以我不是在谈论它)

我还想知道脚本上存在的缺点/缺陷以及如何纠正它们。

提前致谢。

JQuery的

<script>
$(document).ready(function() {
    $('#loggedin').click(function() {
        var username=$("#username").val();
        var password=$("#password").val();
        //var hidden=$('#form_name').val();
        var dataString = 'username='+username+'&password='+password;
        if($.trim(username).length>0 && $.trim(password).length>0){
            $.ajax({
                type: "POST",
                url: "scripts/testlogin.php",
                data: dataString,
                cache: false,
                beforeSend: function(){ 
                    $("#loggedin").val('Connecting...');
                },
                success: function(data){
                    if(data){
                        //alert(data);
                        window.location.href="./home.php";
                    }
                    else
                    {
                        //alert(data);
                        //$('#box').shake();
                        $("#loggedin").val('Log In')
                        $("#error").html("<span style='color:#cc0000'>Error:</span> Invalid username and password. ");
                    }
                }
            });
        }
        return false;
    });
});
</script>

PHP(登录)

<?php
include 'connect.php';
include 'f_userTrack.php';
//if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['form_name'] == 'loginform')
if (isset($_POST['password']) && isset($_POST['username']))
    {
        $found = false;
        $error = '';
        $fullname = '';
        $sessid = rand();
        $session_timeout = 600;
        $password = $_POST['password'];

        $sql = "SELECT salt, password, firstname, lastname, account_status FROM users WHERE username = '".mysqli_real_escape_string($db, $_POST['username'])."'";
        $result = mysqli_query($db, $sql);

        /*   if(!$result){
             printf("Error:%s\n", mysqli_error($db));
             exit();
             }*/

        if ($data = mysqli_fetch_array($result))
            {
                $salt = $data['salt'];
                $crypt_pass = hash('sha256', $salt.$password);
                if ($crypt_pass == $data['password'] && $data['account_status'] != 0)
                    {
                        $found = true;
                        $fullname = $data['firstname'].' '.$data['lastname'];
                    }
            }
        mysqli_close($db);

        if($found == false)
            {
                //$error = "Username or Password is incorrect! Try again.";
                //header('Location: login.php');
                //exit;
            }
        else
            {
                if (session_id() == "")
                    {
                        session_start();
                        userLogin($sessid); //Registering the login
                        echo '1';
                    }
                $_SESSION['username'] = $_POST['username'];
                $_SESSION['fullname'] = $fullname;
                $_SESSION['session_id'] = $sessid;
                $_SESSION['expires_by'] = time() + $session_timeout;
                $_SESSION['expires_timeout'] = $session_timeout;
                $rememberme = isset($_POST['rememberme']) ? true : false;
                if ($rememberme)
                    {
                        setcookie('username', $_POST['username'], time() + 3600*24*30);
                        setcookie('password', $_POST['password'], time() + 3600*24*30);
                    }
                //header('Location: home.php');
                //exit;
            }
    }
$username = isset($_COOKIE['username']) ? $_COOKIE['username'] : '';
$password = isset($_COOKIE['password']) ? $_COOKIE['password'] : '';

?>

f_userTrack

<?php
//Tracks user log in
function userLogin($session_id){
    include 'connect.php';

    if (isset($_SESSION['username']))
        {
            $loggedusername = $_SESSION['username'];
            $fullname = $_SESSION['fullname'];
        }
    $sessid = $session_id;
    $sql = "INSERT `logs` (`session_id`, `fullname`, `username`, `ip_address`, `login_time`,`logout_time`) VALUES ('$sessid', '$fullname', '$loggedusername', '', NOW(), '')";
    $result = mysqli_query($db, $sql);
    mysqli_close($db);
}

//Tracks user log out
function userLogout(){
    include 'connect.php';

    if (isset($_SESSION['session_id']))
        {
            $usersessionid = $_SESSION['session_id'];
        }
    $sql = "UPDATE `logs` SET `logout_time` = NOW() WHERE `session_id` = '$usersessionid'";
    $result = mysqli_query($db, $sql);
    mysqli_close($db);
}

?>

0 个答案:

没有答案