如何限制多次登录? [英] How to restrict multiple login in a time?

查看:74
本文介绍了如何限制多次登录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想确保所有登录的用户在同一台​​或不同的计算机或网络浏览器上都是不同的。以下是我的程序样本,包括4个不同的页面;


[PHP]

#users.php


$ users = array(

''user1''=> md5(''password1''),

''user2''=> md5(' 'password2'')

);

$ salt = substr(md5(日期(''F'')),8);

[/ PHP]


[PHP]

<?php

#login.php


if($ _ SERVER [''REQUEST_METHOD''] ==''POST'')

{

if(!ereg(''^ ^ [A-Za-z0-9]'',$ _POST [''用户名'']))

{

退出(''< p>无效字符在用户名中。< / p>'');

}

其他

{

$用户名= $ _POST [''username''];

$ password = md5($ _ POST [''password'']);


require(' 'users.php'');


if(array_key_exists($ username,$ users))

{

//用户名存在

//将提交的密码与数组键值(正确的密码)进行比较

if($ password == $ users [$ username] )

{

//密码正确

session_start();

$ _SESSION [''usr' '] = $ username;

$ _SESSION [''loggedin''] = md5($ username。$ password。$ salt);

setcookie(session_name(), $ _COOKIE [session_name()],time()+ 7200,''/'');

header(''Location:home.php'');

退出;

}

其他

{

退出(''< p>密码无效。< / p>'');

}

}

其他

{

退出(''< p>用户名无效。< / p>'');

}

}

}

?>

< html>

< head>

< title>登录表格< / title> ;

< / head>


< body>

< form method =" post" action =" login.php">

用户名:< input type =" text" name =" username">< br />

密码:< input type =" password" name =" password">< br />

< input type =" submit"命名= [提交" value =" Login">

< / form>

< / body>

< / html>

[/ PHP]


[PHP]

#check.php


session_start( );


if(!isset($ _ SESSION [''loggedin'']))

{

header(' '位置:login.php'');

退出;

}

其他

{

//会话变量存在,检查它是否有效:

require(''users.php'');

$ userexists = false ;


foreach($ users as $ username => $ password)

{

if(md5($ username。 $ password。$ salt)== $ _SESSION [''loggedin''])

{

$ userexists = true;

} < br $>
}


if($ userexists!== true)

{

退出('' < p>会话无效:请< a href =" login.php"> login< / a>。< / p>'');

}

}

[/ PHP]


[PHP]

<?php

require(''check .php'');

?>

< html>

< head>

< ;标题>用户主页< / title>

< / head>


< body>

< p> ;< a href =" logout.php">退出< / a>< / p>

< p>您的用户名是:<?php echo $ _SESSION ['' usr'']?>< / p>

< / body>

< / html>

[/ PHP]

I want to make sure all users those login are different in a time either on the same or different computer or web browser. Following are sample of my program which consist 4 different pages;

[PHP]
#users.php

$users = array(
''user1'' => md5(''password1''),
''user2'' => md5(''password2'')
);
$salt = substr(md5(date(''F'')), 8);
[/PHP]

[PHP]
<?php
#login.php

if($_SERVER[''REQUEST_METHOD''] == ''POST'')
{
if(!ereg(''^[A-Za-z0-9]'', $_POST[''username'']))
{
exit(''<p>Invalid characters in the username.</p>'');
}
else
{
$username = $_POST[''username''];
$password = md5($_POST[''password'']);

require(''users.php'');

if(array_key_exists($username, $users))
{
//the username exists
//compare the submitted password to value of the array key (the right password)
if($password == $users[$username])
{
//password is correct
session_start();
$_SESSION[''usr''] = $username;
$_SESSION[''loggedin''] = md5($username.$password.$salt);
setcookie(session_name(), $_COOKIE[session_name()], time()+7200, ''/'');
header(''Location: home.php'');
exit;
}
else
{
exit(''<p>Invalid password.</p>'');
}
}
else
{
exit(''<p>Invalid username.</p>'');
}
}
}
?>
<html>
<head>
<title>Login Form</title>
</head>

<body>
<form method="post" action="login.php">
Username: <input type="text" name="username"><br />
Password: <input type="password" name="password"><br />
<input type="submit" name="submit" value="Login">
</form>
</body>
</html>
[/PHP]

[PHP]
#check.php

session_start();

if(!isset($_SESSION[''loggedin'']))
{
header(''Location: login.php'');
exit;
}
else
{
//the session variable exists, check it''s valid:
require(''users.php'');
$userexists = false;

foreach($users as $username => $password)
{
if(md5($username.$password.$salt) == $_SESSION[''loggedin''])
{
$userexists = true;
}
}

if($userexists !== true)
{
exit(''<p>Invalid session: please <a href="login.php">login</a>.</p>'');
}
}
[/PHP]

[PHP]
<?php
require(''check.php'');
?>
<html>
<head>
<title>User Home Page</title>
</head>

<body>
<p><a href="logout.php">Logout</a></p>
<p>Your username is : <?php echo $_SESSION[''usr''] ?></p>
</body>
</html>
[/PHP]

推荐答案

users = array(

''user1''=> md5(''password1''),

''user2''=> md5(''password2'')

);
users = array(
''user1'' => md5(''password1''),
''user2'' => md5(''password2'')
);


salt = substr(md5(date(''F'')),8 );

[/ PHP]


[PHP]

<?php

# login.php


if(
salt = substr(md5(date(''F'')), 8);
[/PHP]

[PHP]
<?php
#login.php

if(


_SERVER [''REQUEST_METHOD''] ==''POST'')

{

if(!ereg(''^ [A-Za-z0-9]'',
_SERVER[''REQUEST_METHOD''] == ''POST'')
{
if(!ereg(''^[A-Za-z0-9]'',


这篇关于如何限制多次登录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆