如何限制多次登录? [英] How to restrict multiple login in a time?
问题描述
我想确保所有登录的用户在同一台或不同的计算机或网络浏览器上都是不同的。以下是我的程序样本,包括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屋!