phpは単一のユーザーが重複ログインを禁止し、同一のユーザーが同時にログインすることを防止することを実現する
6407 ワード
<?php
session_start();
//ini_set('session.auto_start', 0); // session
//ini_set('session.cookie_lifetime', 0);// session
//ini_set('session.gc_maxlifetime', 3600); //session
//
$server = '127.0.0.1';
$username = 'root';
$password = '';
$conn = mysql_connect($server, $username, $password);
$e = mysql_select_db('test',$conn);
mysql_query("SET NAMES UTF8");
// url,http://www.test.com/single_login.php?name=zx&pwd=zx
header("Content-type:text/html;charset=utf-8");
$username =$_GET['name'];
$password =$_GET['pwd'];
//$ipdress = $_SERVER['REMOTE_ADDR'];
//
//$login_time = time();//
//
//$session_id = session_id();
//
//$_SESSION['name']=$_GET['name'];
//var_dump($session_id);
//$sql = "INSERT INTO tongji VALUES ('NULL','$data_id','$time','$ipdress','$session_id')";
//$result =mysql_query($sql);
$sql = "select * from slogin where username = '$username' and password = '$password'";
//var_dump($sql);
$result =mysql_query($sql);
$s = mysql_fetch_array($result);
// session_id $_session session_id , , session_id
// session , session session
// , session_id, , , , , , redis
// , , , , redis
// session , , session_id , memcash,redis , redis , session_id
if($s){
// var_dump($s);
// echo '<br>';
// echo session_id();
if($s['session_id'] === session_id()){
//unset($s['session_id']);
} else {
$ipdress = $_SERVER['REMOTE_ADDR'];
$login_time = time();
$session_id = session_id();// session_id
$sql = "update slogin set ip = '$ipdress',login_time= '$login_time',session_id = '$session_id'";
$result1 =mysql_query($sql);
// $ss = mysql_fetch_array($result);
if($result1){
echo 'OK';
} else {
echo 'F';
}
}
}else {
echo 'FFFFFFFFFFFFFFFFFFFFFFF';
}
データベース構造
1 id int(11) AUTO_INCREMENT 2 username varchar(20) utf8_general_ci 3 password varchar(20) utf8_general_ci 4 ip varchar(20) utf8_general_ci 5 session_id varchar(100) utf8_general_ci 6 login_time int(20) 7 regist_time int(20)