【发布时间】:2016-04-02 11:45:12
【问题描述】:
我有一个标准的 MySQL 数据库,大约有 60 行(如在用户帐户中)。当我第一次这样做时,我犯了将会话 ID 与简单帐户 ID 相同的错误,现在我想修复我的错误,我显然不会通过 60 行来重置它们不同的安全会话 ID,所以我编写这个函数:
function generate_sessionid(){
return bin2hex(openssl_random_pseudo_bytes(32));
}
function assign_all_sessionids(){
$sessionid = generate_sessionid();
$conn = sql_connect();
$result = mysqli_query($conn, "UPDATE accounts SET sessionid='$sessionid' WHERE 1");
sql_disconnect($conn);
}
assign_all_sessionids();
问题:数据库中的每个帐户都获得与其他帐户相同的随机会话 ID。如何让它回忆每一行的函数,以便让它对每一行都是随机的?
【问题讨论】:
-
Where 1表示账户1或2或n没有区别。它正在更新具有相同价值的所有内容。每个帐户都需要一个循环和一个正确的 WHERE 子句。 MySql Update -
您应该为数据库中的每个条目再次执行
UPDATE命令,并使用 WHERE 子句准确标识一个条目。因此,您必须为每个命令提供 1. 帐户 ID 和 2. 会话 ID。但是我不明白的是:为什么会话 ID 对于帐户来说应该是不变的?会话 ID 通常由服务器或权限在会话创建时创建。它们不能重复使用。 -
嗯,我是网站制作新手,不太了解超级安全的会话 ID cookie 应该如何工作:/
标签: php mysql session-cookies rows