The example in this article describes how PHP determines that the current user has logged in elsewhere. Share it with everyone for your reference. The specific analysis is as follows:
The main ideas are as follows:
1. When logging in, record the user’s SessionID
2. When verifying login, match the recorded SessionID of the user with the current SessionID
3. If they are not the same, please log in elsewhere
Click here to download the complete example code from this website.
First, go to http://localhost/login_single/index.php to check the login status.
The index.php page code is as follows:
header("Content-type: text/html; charset=utf-8");
//Get user information in Session
$username=$_SESSION['username'];
//Judge whether it is valid
if(!isset($username)){
echo "You are not logged in!Log in";
exit();
}
//The user’s SessionID saved when logging in
$sessin_id=file_get_contents('session_id/'.$username);
//If the current SessionID does not match the previously recorded SessionID
//Indicate that you have logged in elsewhere
if(session_id() != $sessin_id){
//Log out the current user
unset($_SESSION['username']);
echo "You have logged in elsewhere!Log in again";
exit();
}else{
echo "Welcome:".$username;
echo " Logout";
}
echo "
--This is the content you can only see after logging in--
";For users who are not logged in, they are prompted to jump to the http://localhost/login_single/login.html login page. The login.html page code is as follows:
After successful login, the corresponding session judgment will be made by the login.php page.
The login.php page code is as follows:
//Set encoding
header("Content-type: text/html; charset=utf-8");
//Receive the content submitted by the form
$username=$_POST['username'];
$password=$_POST['password'];
//Simulate and verify user login
if($username=="admin" && $password=="123"){
//Log in successfully, save username to Session
$_SESSION['username']=$username;
//Create directory
if(!file_exists('session_id')){
mkdir('session_id');
}
//Saved file name
$filename='session_id/'.$username;
//SessionId of the currently logged in user
$session_id=session_id();
//When SessionID is saved to the corresponding file
//Practical application, can be saved to database, memcache, etc.
file_put_contents($filename,$session_id);
//Jump to homepage
header ('Location: index.php');
}else{
echo ('<script>alert("Login failed");window.location="login.html"</script>');
exit();
}
I hope this article will be helpful to everyone’s PHP programming design.