Last Login
PHP Ajax Javascript jQuery
By | Friday, November 11, 2011




Hide Comments
Enter any username:




MySQL:
Make a table in your MySQL database, here called users. An example of a username and password are inserted into the table.
CREATE TABLE `users` (
`user` VARCHAR ( 25 ) NOT NULL ,
`pass` VARCHAR ( 25 ) NOT NULL ,
`last_login_date` VARCHAR ( 100 ) NOT NULL
) ENGINE = MYISAM;
INSERT INTO users VALUES ('demouser', 'demopass', '');
PHP:
settings.php, file where all the important settings will be located and embedded in the other files.
<?php

//MODIFY TO YOUR OWN SETTINGS

//CONNECTS TO YOUR DATABASE
$c mysql_connect("server""username""password");
$db mysql_select_db("your_database"$c);
$table 'users';

?>
login.php, where the users would log in.
<?php

session_start
();

?>
<html>
<head>
<script src="http://wcetdesigns.com/assets/javascript/jquery.js"></script>
<script>
//AJAX, THE LOGIN PROCESS WILL BE SHOWN IN THE 'logger' ELEMENT IN THIS FILE
function login(){
var user = $('#user').val();
var pass = $('#pass').val();
$.ajax({
type: 'POST',
url: 'login-process.php',
data: 'user='+user+'&pass='+pass,
success: function(e){
if(e){
$("#logger").html(e);
}
}
});
}
</script>
</head>
<body>
<div id="logger">
<?php

$user 
$_SESSION["user"];

if(
$user)
{
    
//FILE WITH SETTINGS
    
include("settings.php");
    
    
$q mysql_query("SELECT * FROM $table WHERE user='$user'");
    
$r mysql_fetch_assoc($q);
    
$lldate $r["last_login_date"]; //GETS LAST LOGIN DATE FROM DATABASE
    
if(!$lldate){
        
$lldate "Never before"//IF NO DATE FOUND, LAST LOGIN: "Never before"
    
}
    
    echo 
'Hello, '.$user.' Last Login: '.$lldate.'<br>
    <a href="logout.php">Logout</a>'
;
}
else
{
    echo 
'<table>
    <tr><td align="right">Username:</td><td align="left"><input id="user"></td></tr>
    <tr><td align="right">Password:</td><td align="left"><input id="pass" type="password"></td></tr>
    <tr><td align="right"></td><td align="left"><input onClick="login()" type="button" value="Login"></td></tr>
    </table>'
;
}

?>
</div>
</body>
</html>
process.php, where username and password are checked for a match in the database
<?php

session_start
();
$user $_SESSION["user"];
$postuser $_POST["user"];
$pass $_POST["pass"];
$date date("l, F j, Y").' at '.date("h:i:s A");

if(
$user)
{
    echo 
'Already logged in as '.$user;
}
else
{
    
//FILE WITH SETTINGS
    
include("settings.php");
    
    
$q mysql_query("SELECT * FROM $table WHERE user='$postuser' AND pass='$pass'");
    
$r mysql_fetch_assoc($q);
    
$n mysql_num_rows($q);
    
    if(
$n){
        
$lldate $r["last_login_date"]; //GETS LAST LOGIN DATE FROM DATABASE
        
if(!$lldate){
            
$lldate "Never before"//IF NO DATE FOUND, LAST LOGIN: "Never before"
        
}
        
        
$_SESSION["user"] = $postuser//MAKES A SESSION OF THE USER
        
$_SESSION["date"] = $date//MAKES A SESSION OF THE CURRENT DATE & TIME (IMPORTANT)
        
session_write_close();
        echo 
'Hello, '.$postuser.' Last Login: '.$lldate.'<br>
        <a href="logout.php">Logout</a>'
;
        exit();
    } else {
        echo 
'Username and password do not match<br><br>
        <input id="user"><br>
        <input id="pass" type="password"><br>
        <input onClick="login()" type="button" value="Login">'
;
    }
}

?>
logout.php, where the login date will be stored in database and will be displayed upon next login
<?php

session_start
();

$user $_SESSION["user"];
$date $_SESSION["date"];

if(
$user)
{
    
//FILE WITH SETTINGS
    
include("settings.php");
    
    
//ADDS THE "$date" SESSION IN DB AFTER LOGOUT AND DISPLAYS THAT AS "$lldate" UPON NEXT LOGIN (IMPORTANT)
    
mysql_query("UPDATE $table SET last_login_date='$date' WHERE user='$user'");
    
    
//DESTROYS BOTH SESSIONS
    
$unset time()-60*60*24*365*10;
    
session_unset();
    
setcookie("user"$user$unset"/"".".$_SERVER["HTTP_HOST"]);
    
setcookie("date"$user$unset"/"".".$_SERVER["HTTP_HOST"]);
    
session_destroy();
    
header("Location: login.php");
} else {
    echo 
"Error logging out";
}

?>