我打算创建由
组成的访客登录问题:如果用户1选择他的昵称为" KAKA",则其他用户无法使用昵称" KAKA"(在其他浏览器中),因为它已经是已被带走。
在浏览器中,如果user1必须登录,则会将其昵称存储到会话变量中。
另一方面。如果user2想要登录(在其他浏览器中),她/他无法登录,因为昵称相同。
答案 0 :(得分:1)
避免会话中的重复记录。您可以将数据库用于此类scnerio。
如果用户名存在,您可以检查数据库。赞:
$temp_username = $_POST['username'];//Get the username
if($this->Is_username_available($temp_username))//call the function and check from table that the user name is available.
{
//Create session with posted username.
}
else
{
// show message that Username is already taken for current session.
}
登出时:
Delete_Username($_SESSION['username']);//or you may take $_SESSION['username_id'] if you stored at the time of creation.
答案 1 :(得分:0)
执行此操作的唯一有效方法是使用数据库。因为会话独立于服务器。它们是在客户端(即浏览器)建立的。它们是通过从服务器获取数据在浏览器中创建的。每个浏览器都有自己的会话副本。这就是所有浏览器的会话都独立于其他会话。 如果没有任何服务器端语言的支持,浏览器之间就无法进行会话。
对于您的任务,请按以下步骤操作:
table
以及Session
中(以保持用户登录)。Set time out
让当前用户过期他/她的会话,超时后,也删除表项。 (如果用户登录但从未注销,则无需其他具有相同昵称的用户即可登录)Before logging in
,首先检查用户输入的昵称present
中的table or not
。exists
,reject
此用户的登录信息,因为具有此昵称的其他用户已登录。delete
来自table
和clear
的{{1}}昵称,以便用户成功退出。答案 2 :(得分:-3)
您可以将随机字符串函数用于单独的会话。存储昵称和组合的组合字符串与登录进行通信。相比之下,不仅会比较昵称,还会比较随机字符串,以便为具有不同随机字符串的其他人提供相同的昵称...