Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 限制会话用户PHP_Javascript_Php - Fatal编程技术网

Javascript 限制会话用户PHP

Javascript 限制会话用户PHP,javascript,php,Javascript,Php,如何禁止用户同时在两个不同的浏览器中使用同一帐户登录 session_start(); // set time-out period (in seconds) $inactive = 30; if( is_user_logged_in() ) { if (isset($_SESSION["timeout"])) { // calculate the session's "time to live" $sessionTTL = time() - $_SESSION["timeou

如何禁止用户同时在两个不同的浏览器中使用同一帐户登录

session_start();
// set time-out period (in seconds)
$inactive = 30;
if( is_user_logged_in() ) {

if (isset($_SESSION["timeout"])) {
    // calculate the session's "time to live"
    $sessionTTL = time() - $_SESSION["timeout"];
    if ($sessionTTL > $inactive) {
        session_destroy();
       $redirect_to = isset($_REQUEST['redirect_to']) ? $_REQUEST['redirect_to'] : '/wordpress';
        $location = str_replace('&', '&', wp_logout_url($redirect_to));;
        header("Location: $location");
    }
    else{
        wp_die('<h1>User is login! </h1>', '', array( 'back_link' => true ));    
    }
}
}

为此,您需要为登录日志再创建一个表,因为这些将是字段 userID islogin default=0 logintime useragent

如果用户每次登录都要更新该登录时间

若用户试图登录,那个么我们需要在用户islogin=1且logintime<会话时间时进行检查。然后死去

你需要在wordpress中这样做

所以您需要为登录函数添加代码过滤器。 并在初始化时更新登录时间


谢谢

我在考虑数据库,但我几乎可以肯定,还有很多其他方法可以很简单地解决这个问题。至少,你应该尝试自己编写代码。之后,如果你有问题,你可以张贴你已经尝试了一个明确的解释什么是不工作,并提供一个解决方案。我建议你读一个好的问题和答案。另外,请确保使用并读取。只需在用户登录时设置自定义会话密钥,并在登录后将其删除即可$当前用户=wp\u获取当前用户$id=$current\u user->id;ifemptyis_user_logged_in{$sql=UPDATE preduc_users SET LoggedIn='no'其中ID=$ID;mysqli_query$connecDB,$sql;}else{$sql=UPDATE preduc_users SET LoggedIn='login'其中ID=$ID;mysqli_query$connecDB,$sql;}我这样做是为了修改表中的LoggedIn字段,但当我注销时,它不会更改任何内容