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)